trong các khu vực tốt hơn thiết kế của objectville, các đối tượng rất cụ thể về công việc của họ. Mỗi đối tượng được quan tâm trong việc thực hiện công việc của mình, và chỉ có công việc của mình, để tốt nhất khả năng của mình. . Không có gì là đối tượng được thiết kế tốt ghét hơn là được sử dụng để làm một cái gì đó thực sự không phải là mục đích thật sự của nó là
không may, nó đến ra sự chú ý rằng điều này là chính xác những gì đang xảy ra trong công cụ tìm kiếm hàng tồn kho của Rick: nơi nào đó, một đối tượng đang được sử dụng để làm một cái gì đó mà nó thực sự không nên làm. đó, công việc của bạn để giải quyết bí ẩn này và tìm ra cách chúng ta có thể nhận được đơn của Rick lại nội tuyến.
Để giúp bạn tìm ra những gì đi sai lệch, đây là một số lời khuyên hữu ích để bạn bắt đầu vào việc tìm các loại đối tượng không phù hợp:
1. Đối tượng cần làm những gì tên của họ chỉ ra. Nếu một đối tượng có tên là máy bay phản lực, thì có lẽ nên đi Off () và đất (), nhưng nó không nên dùng vé () đó là công việc của các đối tượng khác, và không thuộc trong máy bay phản lực.
2. Mỗi đối tượng sẽ đại diện cho một khái niệm duy nhất. Bạn không muốn đối tượng phục vụ nhiệm vụ tăng gấp đôi hoặc gấp ba. Tránh một đối tượng vịt mà đại diện cho một con vịt quacking thực, một con vịt yeallo nhựa, và một số một rơi đầu của mình xuống để tránh bị ảnh hưởng bởi một quả bóng cơ sở
3. Tính không sử dụng được một giveaway chết. Nếu bạn đã có một đối tượng được được ing sử dụng không có giá trị hoặc các đặc tính vô offen, bạn đã có thể có một đối tượng làm nhiều hơn một việc. Nếu bạn rerely có giá trị cho một tài sản nhất định, tại sao là một phần tài sản của đối tượng? Sẽ là một đối tượng tốt hơn để sử dụng chỉ với một tập hợp con của những tài sản?
Câu hỏi:
Bạn nghĩ gì về kiểu đối tượng không phù hợp là?
...
Bạn nghĩ gì bạn nên làm gì để khắc phục vấn đề? ? Điều gì thay đổi bạn thực hiện
...
đang Duplicate hút
Encapsulation cho phép bạn nhóm các ứng dụng của bạn vào phần hợp lý
Frack: hey, đó là đúng, joe. Tôi đã không nghĩ về điều đó trước.
Jil: vì vậy những gì? Sử dụng một đối tượng cây đàn guitar làm cho nó thực sự dễ dàng để làm compareisons trong việc tìm kiếm () menthod
Joe: không nhiều hơn bất kỳ một số đối tượng khác sẽ. Nhìn:
Joe: nó thực sự doen't vấn đề gì loại của đối tượng chúng ta đang sử dụng có, miễn là chúng ta có thể tìm ra những gì thichs cụ thể khách hàng của Rick đang tìm kiếm cho
Frank: yeah, tôi nghĩ chúng ta nên có một đối tượng mới mà các cửa hàng chỉ các thông số kỹ thuật mà khách hàng muốn gửi đến các phương pháp Kết (). Sau đó, họ không gửi toàn bộ đối tượng guitar, mà không bao giờ dường như có ý nghĩa nhiều với tôi
Jill: nhưng không phải là sẽ tạo một số mã trùng lặp? Nếu có một đối tượng cho tất cả các thông số kỹ thuật của khách hàng, và sau đó là cây đàn guitar có tất cả các thuộc tính của nó, chúng tôi đã kéo getBuiler () phương pháp, kéo getBackWood () phương pháp ... đó là rất tốt
Frank: vậy tại sao chúng ta không chỉ gói gọn những đặc tính xa guitas vào đối tượng mới?
Joe: whoa .. tôi đã sống với bạn cho đến khi bạn nói "gói gọn". Tôi nghĩ đó là khi bạn đã thực hiện tất cả các biến của bạn riêng tư, vì vậy không ai có thể sử dụng chúng không đúng cách. Cái gì đó đã làm với tính chất của một cây đàn guitar?
Frank: đóng gói cũng là về phá ứng dụng của bạn vào phần hợp lý, và sau đó giữ những phần riêng biệt. Vì vậy, cũng giống như bạn giữ các dữ liệu trong các lớp học của bạn tách biệt với phần còn lại của hành vi của ứng dụng của bạn, chúng tôi có thể giữ các thuộc tính chung của một cây đàn guitar riêng biệt từ các đối tượng cây đàn guitar thực tế bản thân
Jill: và sau đó cây đàn guitar chỉ có một trỏ biến với một loại đối tượng mới lưu trữ tất cả các thuộc tính của nó?
Frank: chính xác! Vì vậy, chúng tôi đã thực sự đóng gói các tính chất đàn guitar ra khỏi guitar, và đặt chúng vào đối tượng sepatate riêng của họ. Hãy nhìn xem, chúng ta có thể làm một cái gì đó như thế này ..
tạo các đối tượng GuitarSpec
Dưới đây, bạn sẽ thấy sơ đồ lớp cho guitar, và các đối tượng GuitarSpec mới mà Frank, Jill, và Joe đã được thảo luận. Đó là công việc của bạn để thêm tất cả các thuộc tính và phương pháp mà bạn nghĩ rằng bạn sẽ cần phải GuitarSpec. Thân, gạch bỏ bất cứ điều gì bạn không cần nữa trong lớp Guitar. Cuối cùng, chúng tôi đã để lại cho bạn một số không gian trong sơ đồ lớp Guitar trong trường hợp bạn nghĩ rằng bạn cần phải thêm bất kỳ thuộc tính mới hoặc phương pháp. Chúc may mắn!
Hinh anh
Dưới đây, bạn sẽ thấy sơ đồ lớp cho guitar, và các đối tượng GuitarSpec mới mà Frank, Jill, và Joe đã được thảo luận. Đó là công việc của bạn để thêm tất cả các thuộc tính và phương pháp mà bạn nghĩ rằng bạn sẽ cần phải GuitarSpec. Xem nếu bạn đã thực hiện những thay đổi tương tự mà chúng ta đã làm
Hinh anh
Bây giờ cập nhật mã riêng của bạn
Với sơ đồ lớp học này, bạn shoul có thể thêm lớp guitaSpec để ứng dụng của bạn, và cập nhật các lớp guita là tốt. Đi trước và thực hiện bất kỳ thay đổi bạn cần phải Inventory.java để các công cụ tìm kiếm của biên dịch, là tốt.
1. Hãy chắc chắn rằng phần mềm của bạn làm những gì khách hàng muốn nó để làm
2. Việc áp dụng 00 nguyên tắc cơ bản để thêm flesibility
3. Phấn đấu cho một thiết kế tái sử dụng bảo trì
đang được dịch, vui lòng đợi..
