David West trong cuốn sách Tư duy đối tượng (chương 10, phần 1, tiểu mục 2) đã đề xuất rằng trong một môi trường OO lý tưởng, mọi đối tượng nên có khả năng trình bày theo yêu cầu; có thể là con người (dưới dạng GUI), các thành phần không phải là nguồn gốc (như JSON và / hoặc XML) hoặc bất kỳ bên nào quan tâm khác:
Suy nghĩ đối tượng nói rằng một khung nhìn (đôi khi được gọi là một giao diện), hay còn gọi là cách khác là một phương tiện để một đối tượng giao tiếp với một đối tượng khác và không có gì khác. Nhu cầu về chế độ xem xuất hiện khi một đối tượng cần thể hiện chính nó dưới dạng một người không phải là người bản địa của một nhóm đối với một đối tượng khác (thường là con người) hoặc ứng dụng (ví dụ: chế độ xem XML cho các đối tượng dữ liệu được chia sẻ trên các nền tảng).
Khám phá về nhu cầu và các tham số phải được thỏa mãn bởi một khung nhìn được biểu hiện trong các tình huống mà đối tượng tham gia. Bất cứ khi nào một đối tượng được yêu cầu hiển thị chính nó, nó phải sử dụng chế độ xem một biểu tượng phù hợp cho người gửi tin nhắn hiển thị đó. Ví dụ, nếu một đối tượng đang cố gắng tự khởi tạo (lấy một giá trị cho chính nó), thì nó phải đưa ra một quan điểm về chính nó như một yêu cầu ngầm đối với một con người (hoặc đối tượng cung cấp dịch vụ khác) cho một giá trị. Nếu chúng ta đang xây dựng một GUI sẽ đóng vai trò trung gian giữa một đối tượng phần mềm và đối tượng người, chúng ta sẽ sử dụng glyphs cho mục đích hiển thị và các widget cho mục đích tương tác.
Nhưng glyphs và widget nào cần được đưa vào GUI? Chỉ những người cần thiết để hoàn thành kịch bản hoặc kịch bản 4 quan tâm ngay lập tức khi ứng dụng chạy. Viễn cảnh này là phản trực giác đối với hầu hết các nhà phát triển vì nó gợi ý rằng GUI được xác định từ ứng dụng.
Ví dụ, xem xét một nhà máy bia. Tắt sang một bên là những thùng đầy bia. Tại một dây chuyền sản xuất phức tạp bao gồm máy rửa chai, trạm nạp, máy đóng nắp và máy lắp ráp gói. Trên hết là một trạm điều khiển giám sát nhà máy bia và thông báo cho các nhà quản lý con người về tình trạng và vấn đề. Các nhà phát triển truyền thống có khả năng bắt đầu phân tích và thiết kế hệ thống quản lý nhà máy bia của họ theo quan điểm của bảng điều khiển. Điều này tương tự như thiết kế từ giao diện trong.
Thay vào đó, tư duy đối tượng sẽ đề xuất rằng bạn xem xét đối tượng nào là khách hàng chính của nhà máy bia và tất cả các máy móc của nó. Nhân danh thiết bị phức tạp tồn tại thay mặt cho ai? Tất nhiên, câu trả lời đúng cho doanh nghiệp là khách hàng. Nhưng một câu trả lời phản ánh rõ hơn về suy nghĩ của đối tượng là, Bia. Tất cả các kịch bản được viết từ quan điểm của bia, cố gắng tự chui vào một cái chai, có nắp, được đặt trong một gói, và cư trú trong một chiếc xe tải. Bảng điều khiển là một người quan sát thụ động 5 về tình trạng của nhà máy bia. Nếu bia gặp phải sự cố tại một số điểm, thì trách nhiệm của bia là yêu cầu sự can thiệp của người vận hành con người bằng cách gửi tin nhắn đến bảng điều khiển (hoặc bảng điều khiển dành riêng cho máy) yêu cầu dịch vụ can thiệp.
Phối cảnh này sẽ đơn giản hóa thiết kế GUI và quan trọng hơn là loại bỏ máy chủ của các đối tượng trình quản lý và trình điều khiển dường như phát sinh chắc chắn khi thiết kế từ phối cảnh của bảng điều khiển (GUI).
Đến từ một người mới bắt đầu trong thế giới OO: điều này thực sự có nên xảy ra không?
Có những đối tượng biết cách tự đại diện chắc chắn có thể giảm số lượng đối tượng điều khiển / quản lý mà West liên tục nói trong cuốn sách của mình, một Nhà tư tưởng đối tượng được cho là nên cố gắng tránh bằng mọi giá. Nhưng sẽ không tuân thủ "quy tắc" này phá vỡ SRP ?
Ngoài ra (nếu nó trở thành trường hợp), được đưa ra một triển khai điển hình trong một ứng dụng Android: Làm thế nào một người có thể đạt được loại mục tiêu này? Có phải mọi đối tượng chúng ta tạo ra đều biết cách thể hiện bản thân như một View
?