There are no dumb questionsQ: I understand why we needs an object for  dịch - There are no dumb questionsQ: I understand why we needs an object for  Việt làm thế nào để nói

There are no dumb questionsQ: I und

There are no dumb questions
Q: I understand why we needs an object for the client to send specs to search() .. but why we are using that object to hold properties for Guitar, too?
A: suppose you just use GuitarSpec to hold client specs for sending do the search() method, and you keep the guitar class just the same as it was. If Rick started carrying 12-string guitars, and wanted a numString property, you’d have to add that property – and code for a getNumString() method – to both the GuitarSpec and Guitar classes. Can you see how this would lead to duplicate code? Instead, we can put all that (potentially) duplicate code into the GuitaSpec class, and then have Guitar objects reference an instance of it to avoid any dumplication
Anytime you see duplicate code, look for aplace to encapsulate!
Q: I still am confused abuot how this is a foerm of ancapsulation. Can you explain that again?
A: the idea behind encapsulation is to protect information in one part of your application fron the other parts of yous application. In its simplest form, you can protect the data in your class from the rest of your app by making that data private. But sometimes the information might be an entire set of properties – like the detais about a guitar – or even behavior – like how a particular type of duck flies.
When you break that behavior uot from a class, you can change the behavior whitout the class having to change as well. So if you changed how properties were stored, you wouldn’t have change your guitar class at all, because the properties are encapsulated away from Guitar.
That’s the power of the encapsulation: by breaking up the different parts of yous app, you can change one part without having to change all the other parts. In generat, you should encapsulate the parts of your app that might vary away from the parts that will stay the same.

Update the inventory class
Now that we’ve encapsulate away the specifications of a guitar, we’ll need to make a few other changes to out code.
Hinh anh
Getting ready for another test drive
You’ll need to update the FindguitarTester class to test out all these new changes:
Hinh anh:

Why do I matter?
You’ve learned a lot abot writing great solfware, and there’s still more to go! Take adeep breath and think about some of the terms and principles we’ve recoverd. Connect the words on the left to the purposes of these techniques and principles on the right.
Flexibility
Encapsulation
Funtionality
Design pattern

Without me, you’ll never actually make the customer hapy. No matter how well-designed your application is, I’m the thing that puts a smile on the cus tomer’s face
I’m all about reuse and making sure you’re not trying to solve a proplem that some one else has already figure out
You use me to keep the parts of your code that stay the same separate from the parts that change, then it’s really easy to make changes to your code without breaking everything
Use me so thet your software can change and grow without constan rework. I keep your application from being fragile
(answers on page 52)

There are no dumb questions
Q: encapsulation isn’t the only OO principle I can use at this stage, is it?
A: nope, other good OO principles that you might want to think about at tis stage are inheritance and encapsulation though, so starting out by looking for tplaces where you could use encapsulation to better you design is always a good idea.
We’ll talk about a lot more OO programing principles throughout this book (and even see in chapter 8), so don’t worry if you are still getting a handel onthings at this point. You’ll learn a lot more about encapsulation, class design, and more before we’re done
Q: but I don’t really see how this encapsulation make my code more flexible. Can you explain that again?
A: once you’ve gotten your software to work like it’s supposed to, flexibility become abi deal. What if the customer wants to add new properties or features to app? If you’ve got tons of duplicate code or confusing inhenritain structures in your app making changes is going to be pain
By introcucing principles like encapsulation and gcod class design into your code, it’s easier to make these changes, and your application becomes a lot more flexible

Getting back to Rick’s app
Let’s make sure all our changes haven’t messed up the way Rick’s tool works. Complie your classes, and run the FindGuitarTester program again:

Hinh anh

Brain power
Can you think of three specific ways that well-designed software is easier to change than software that has duplicate code?
Design onne, design twice
Once you’ve taken a first pass over your software and aplied some basic OO principles, you’re ready to take onother look, and this time make sure youe software is not only flexible, but easily reused and extended

Hinh anh
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Không có không có câu hỏi ngu ngốcHỏi: tôi hiểu lý do tại sao chúng ta cần một đối tượng cho khách hàng để gửi các thông số kỹ thuật cho search()... nhưng tại sao chúng tôi đang sử dụng đối tượng đó để giữ thuộc tính cho Guitar, quá?Ðáp: giả sử bạn chỉ cần sử dụng GuitarSpec để giữ khách hàng số kỹ thuật cho việc gửi làm phương pháp search(), và bạn giữ các lớp học guitar chỉ giống như nó đã. Nếu Rick bắt đầu mang theo 12-string guitar, và muốn có một tài sản numString, bạn sẽ có thêm rằng bất động sản-và mã cho một phương pháp getNumString()-cho các lớp học GuitarSpec và Guitar. Bạn có thể xem như thế nào điều này sẽ dẫn đến mã trùng lặp? Thay vào đó, chúng tôi có thể đặt tất cả các mã trùng lặp (tiềm năng) mà vào lớp GuitaSpec, và sau đó các đối tượng Guitar có tham khảo một thể hiện của nó để tránh bất kỳ dumplicationBấ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!Hỏi: tôi vẫn còn đang bối rối abuot làm thế nào đây là một foerm ancapsulation. Bạn có thể giải thích rằng một lần nữa?Đ: ý tưởng đằng sau đóng gói là để bảo vệ các thông tin trong một phần của fron ứng dụng của các bộ phận khác của yous ứng dụng. Trong hình thức đơn giản của nó, bạn có thể bảo vệ các 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 dữ liệu riêng tư. Nhưng đôi khi các thông tin có thể là một toàn bộ thiết lập của các thuộc tính-như detais về guitar- hoặc thậm chí cả hành vi-như thế nào một loại vịt bay. Khi bạn phá vỡ mà hành vi thanh từ một lớp học, bạn có thể thay đổi hành vi whitout lớp cần phải thay đổi như là tốt. Vì vậy nếu bạn thay đổi như thế nào tài sản đã đượ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 thuộc tính được đóng gói đi từ Guitar. Đó là sức mạnh của đóng gói: bằng cách phá vỡ các bộ phận khác nhau của yous app, 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 bộ phận của các ứng dụng của bạn có thể khác nhau từ các bộ phận sẽ ở lại cùng.Cập nhật các lớp hàng tồn khoBây giờ mà chúng tôi đã đóng gói đi các thông số kỹ thuật của một guitar, chúng tôi sẽ cần phải thực hiện một số thay đổi khác để ra mã.Hinh anhSẵn sàng cho một ổ đĩa thử nghiệmBạn sẽ cần phải cập nhật các lớp học FindguitarTester để kiểm tra tất cả những thay đổi mới:Hinh anh:Tại sao làm việc?Bạn đã học được rất nhiều abot viết tuyệt vời solfware, và vẫn còn nhiều hơn để đi! Adeep thở và suy nghĩ về một số trong các điều khoản và nguyên tắc mà 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 ở bên phải.Tính linh hoạtĐóng góiFuntionalityMẫu thiết kếKhông có tôi, bạn sẽ không bao giờ thực sự làm cho khách hàng hapy. Không có vấn đề như 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ủa tomer cusTôi là tất cả về tái sử dụng và đảm bảo rằng bạn đang không cố gắng để giải quyết một proplem một số ai khác đã tìm raBạn sử dụng cho tôi để giữ cho các bộ phận của mã của bạn ở lại cùng riêng biệt từ các bộ phận thay đổi, sau đó nó là rất dễ dàng để thay đổi mã của bạn mà không vi phạm tất cả mọi thứSử dụng cho tôi để tâm 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 từ đang được mỏng manh (câu trả lời trên trang 52)Không có không có câu hỏi ngu ngốcHỏi: đóng gói không phải là duy nhất OO nguyên tắc tôi có thể sử dụng ở giai đoạn này, là nó?A: không, khác tốt OO nguyên tắc mà bạn có thể muốn suy nghĩ về giai đoạn tis là kế thừa và đóng gói mặc dù, do đó, bắt đầu bằng cách tìm kiếm tplaces nơi bạn có thể sử dụng các đóng gói để bạn thiết kế tốt hơn luôn luôn là một ý tưởng tốt.Chúng tôi sẽ nói về nhiều OO nguyên tắc lập trình trong suốt cuốn sách này (và ngay cả xem ở chương 8), vì vậy đừng lo lắng nếu bạn vẫn nhận được một onthings handel tại thời điểm này. Bạn sẽ tìm hiểu nhiều hơn về đóng gói, lớp học thiết kế, và nhiều hơn nữa trước khi chúng tôi đang thực hiệnHỏi: nhưng tôi thực sự không nhìn thấy như thế nào đó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 làm việc như nó là nghĩa vụ phải, linh hoạt trở thành abi thỏa thuận của bạn. Nếu khách hàng muốn để thêm tài sản mới hoặc các tính năng vào ứng dụng? Nếu bạn đã có tấn của mã trùng hoặc gây nhầm lẫn cấu trúc inhenritain trong ứng dụng của bạn thực hiện thay đổi sẽ là nỗi đauBởi introcucing các nguyên tắc như đóng gói và thiết kế lớp gcod vào 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 linh hoạt hơn rất nhiềuBắt trở lại của Rick appHãy chắc chắn rằng tất cả các thay đổi của chúng tôi đã không điều sai lầm đường của Rick công cụ hoạt động. Hợp các lớp học của bạn, và chạy FindGuitarTester chương trình một lần nữa:Hinh anhĐiện nãoBạn có thể nghĩ trong ba cách cụ thể là phần mềm được thiết kế dễ dàng hơn để thay đổi so với phần mềm có mã trùng lặp?Thiết kế onne, thiết kế hai lầnMột khi bạn đã thực hiện một pass đầu tiên trên phần mềm và aplied của bạn một số nguyên tắc cơ bản của OO, bạn đã sẵn sàng để có cái nhìn onother, và thời gian này làm cho chắc chắn youe là phần mềm không chỉ linh hoạt, nhưng dễ dàng tái và mở rộngHinh anh
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
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..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: