Chưa có câu hỏi câm
Q: Tôi hiểu lý do tại sao chúng ta cần một đối tượng cho các khách hàng để gửi thông số kỹ thuật để tìm kiếm () .. nhưng tại sao chúng ta sử dụng đối tượng đó để giữ tài sản cho Guitar, quá?
A: giả sử bạn chỉ cần sử dụng GuitarSpec giữ thông số kỹ thuật của khách hàng để gửi làm phương pháp tìm kiếm (), và bạn giữ cho lớp đàn guitar chỉ giống như nó được. Nếu Rick bắt đầu mang cây đàn guitar 12 dây, và muốn có một tài sản numString, bạn phải bổ sung tài sản đó - và mã cho một phương pháp getNumString () - cho cả lớp GuitarSpec và Guitar. Bạn có thấy điều này sẽ dẫn đến trùng lặp mã? Thay vào đó, chúng ta có thể đưa tất cả những gì (khả năng) trùng lặp mã vào lớp GuitaSpec, và sau đó có các đối tượng Guitar tham khảo một ví dụ của nó để tránh bất kỳ dumplication
Bất cứ lúc nào bạn nhìn thấy mã trùng lặp, tìm kiếm aplace để đóng gói!
Q: Tôi vẫn còn đang bối rối abuot cách này là một foerm của ancapsulation. Bạn có thể giải thích rằng một lần nữa?
A: ý tưởng đằng sau đóng gói là để bảo vệ thông tin trong một phần của ứng dụng của bạn fron các phần khác của ứng dụng ơn. Ở dạng đơn giản nhất, bạn có thể bảo vệ dữ liệu trong lớp học của bạn từ phần còn lại của ứng dụng của bạn bằng cách làm cho rằng dữ liệu cá nhân. Nhưng đôi khi các thông tin có thể là cả một tập hợp các thuộc tính - như detais về một guitar - hoặc thậm chí hành vi -. Giống như một dạng đặc biệt của vịt cách bay
Khi bạn phá vỡ rằng hành vi uot từ một lớp học, bạn có thể thay đổi hành vi whitout lớp phải thay đổi theo. Vì vậy, nếu bạn đã thay đổi như thế nào tính được lưu trữ, bạn sẽ không có thay đổi lớp học guitar của bạn ở tất cả, bởi vì các tính chất được đóng gói đi từ Guitar.
Đó là sức mạnh của việc đóng gói: bằng cách phá vỡ các phần khác nhau của ứng dụng yous, bạn có thể thay đổi một phần mà không cần phải thay đổi tất cả các bộ phận khác. Trong generat, bạn nên đóng gói các phần của ứng dụng của bạn mà có thể khác nhau từ các bộ phận mà sẽ ở lại cùng.
Cập nhật các lớp tồn kho
Bây giờ chúng tôi đã tóm lược đi những chi tiết kỹ thuật của guitar, chúng tôi sẽ cần phải thực hiện một vài khác thay đổi mã ra.
Hinh anh
bị sẵn sàng cho một ổ đĩa thử nghiệm
Bạn sẽ cần phải cập nhật các lớp FindguitarTester để kiểm tra tất cả những thay đổi mới:
Hinh anh:
? Tại sao tôi lại quan trọng
Bạn đã học được rất nhiều abot viết solfware tuyệt vời, và vẫn có nhiều hơn để đi! Hãy adeep hơi thở và suy nghĩ về một số thuật ngữ và nguyên tắc chúng tôi đã recoverd. Kết nối từ bên trái với mục đích của các kỹ thuật và nguyên tắc về quyền.
Tính linh hoạt
Encapsulation
funtionality
Thiết kế mô hình
Không có tôi, bạn sẽ không bao giờ thực sự làm cho hapy khách hàng. Không có vấn đề làm thế nào cũng được thiết kế ứng dụng của bạn là, tôi là điều mà đặt một nụ cười trên khuôn mặt các cus Tomer của
tôi là tất cả về việc tái sử dụng và bảo đảm rằng bạn không cố gắng để giải quyết một proplem rằng một ai khác đã tìm ra
bạn sử dụng tôi để giữ cho các phần của mã của bạn mà ở lại cùng riêng biệt từ các bộ phận mà thay đổi, sau đó nó thực sự dễ dàng để thay đổi mã của bạn mà không phá vỡ tất cả mọi thứ
sử dụng tôi như vậy thét phần mềm của bạn có thể thay đổi và phát triển mà không làm lại constan. Tôi giữ cho ứng dụng của bạn không bị mỏng manh
(câu trả lời trên trang 52)
Chưa có câu hỏi câm
Q: đóng gói không phải là nguyên tắc OO duy nhất tôi có thể sử dụng ở giai đoạn này, phải không?
A: nope, nguyên tắc OO tốt khác mà bạn có thể muốn để suy nghĩ về giai đoạn tis là thừa kế và đóng gói tuy nhiên, nên bắt đầu bằng cách tìm tplaces nơi bạn có thể sử dụng đóng gói để tốt hơn bạn thiết kế luôn luôn là một ý tưởng tốt.
Chúng tôi sẽ nói về rất nhiều nguyên tắc OO lập trình trong suốt cuốn sách này (và thậm chí nhìn thấy trong chương 8), do đó, không lo lắng nếu bạn vẫn nhận được một onthings handel vào thời điểm này. Bạn sẽ học được nhiều hơn về đóng gói, thiết kế đẳng cấp, và nhiều hơn nữa trước khi chúng ta đang thực hiện
Q: nhưng tôi không thực sự thấy cách đóng gói này làm cho mã của tôi linh hoạt hơn. Bạn có thể giải thích rằng một lần nữa?
A: một khi bạn đã nhận được phần mềm của bạn để làm việc như nó nghĩ đến, linh hoạt trở nên thỏa thuận abi. Điều gì nếu khách hàng muốn thêm thuộc tính mới hoặc tính năng vào ứng dụng? Nếu bạn đã có tấn mã trùng lặp hoặc cấu trúc inhenritain khó hiểu trong ứng dụng của bạn làm cho những thay đổi sẽ là đau
By introcucing nguyên tắc như thiết kế đóng gói và gcod lớp thành mã của bạn, nó dễ dàng hơn để thực hiện những thay đổi này, và ứng dụng của bạn trở nên nhiều hơn linh hoạt
Bắt trở lại ứng dụng của Rick
Hãy chắc chắn rằng tất cả các thay đổi của chúng tôi đã không sai lầm một cách cụ Rick của các công trình. Complie lớp học của bạn, và chạy chương trình FindGuitarTester lại:
Hinh anh
sức mạnh não
bạn có thể nghĩ ra ba cách cụ thể mà được thiết kế phần mềm là dễ dàng hơn để thay đổi so với các phần mềm có bản sao mã?
Thiết kế Onne, thiết kế hai lần
Một khi bạn đã thực hiện lần đầu tiên vượt qua phần mềm của bạn và aplied một số nguyên tắc OO cơ bản, bạn đã sẵn sàng để có onother nhìn, và lần này chắc chắn phần mềm youe là không chỉ linh hoạt, mà còn dễ dàng tái sử dụng và mở rộng thêm
Hinh anh
đang được dịch, vui lòng đợi..