當用Java實現的外觀模式,我可以很容易地通過使用包private修飾符隱藏的門面子系統。因此,從外觀/包裝外部只能訪問一個小型界面,其他類別的子系統不可見。如何實現在C#中的門面模式和身體隱藏子系統
正如你已經知道,有在C#中沒有包-private修飾符,但類似一個所謂的內部。根據文檔,定義爲內部的類只能在相同的程序集內訪問。
從我unterstand,我要創建至少兩個組件(指實際上兩個.exe/.dll文件)以隱藏門面的子系統在物理。從物理上來講,我的意思是類a)不能從外部實例化,並且b)不能通過門面外的智能感知來顯示。
- 我真的必須將我的小型項目拆分爲一個.exe和一個.dll(用於外觀),以便內部關鍵字有效嗎?我的外觀的子系統只包含2個類,一個自己的.dll似乎是矯枉過正的。
- 如果是,在Visual Studio中將我的外觀外包給自己的程序集的最佳實踐方法是什麼?
不要誤會我的意思,我沒有真正需要我的程序分成幾個組件。我只是想從智能感知隱藏我的外觀後面的一些類,並防止從外部實例化。但是,如果我沒有錯,那麼沒有更簡單的方法。
一個門面模式背後的理念,按我的理解,就是給一個簡單的界面,需要簡單的功能的客戶端,但仍然可以有更高級的客戶子系統的全部高級功能。爲什麼那麼,你想隱藏子系統? – FishBasketGordo
好的,我的問題不好,忘記了門面模式。我只想隱藏一些課程。或者讓我們說我想把我的外觀變成一個封裝的組件。 – alapeno
程序集可以通過「InternalsVisibleToAttribute」通過「朋友程序集」授予對其內部組件的訪問權限。但是,目前還不清楚你真的想完成什麼,所以我不知道這是否會有所幫助。 –