比方說,我們有一個接口'IA',我們有一個實現'A'。 在我們的應用領域,沒有容器對象'X',對象'A'永遠不會存在。所以'A'永遠不會直接操作。 'A'聚合在'X'中。服務訪問控制(設計決策)
我們不想將'A'暴露給外部世界。爲此我們採取了這種方法,不要讓公共接口'IA'直接在'X'中使用實現'A'。不知何故,我覺得這不是正確的方法。可能是我錯過了一些基本的面向對象的概念。
請認真考慮。
PS:在給出的理由不提供「IA」爲:人們可能會拿出自己的隨機執行A和與系統玩。
好的。讓我把這個實際問題放在這裏。 我正在開發一個Web應用程序。我們有幾個層次 - Dao,Doamin,Service,Web。 服務層通過DAO在域對象上提供各種服務。 我們有域對象 - Wire和WireRequest。 WireRequest可以有任何數量的導線。與這些域對象相對應,我們有兩個服務 - WireService和WireRequestService。使用spring在WireRequestService中注入WireService。
當我們暴露我們的service.jar中來的客戶,他們可能可以獨立使用WireService和不WireRequest對象來創建線對象。我們想要阻止這一點。基本上我們想要控制對一些服務的訪問。 (我們可以通過授權春季方面做到這一點,但希望使用一些OO方式)
-Nayn
是否有一個特定的語言,這將在內部實現? – Kenaniah 2009-12-09 05:55:35
它是用Java實現的 – Nayn 2009-12-09 06:13:57