在 Java 中实现外观模式时,我可以通过使用 package-private 修饰符轻松隐藏外观的子系统。结果,只有一个小接口可以从外观/包外部访问,子系统的其他类不可见。
如您所知,C# 中没有 package-private 修饰符,但有一个类似的修饰符,称为 internal。根据文档,定义为 internal 的类只能在同一个 assembly 中访问。
据我了解,我必须创建至少两个程序集(实际上是两个 .exe/.dll 文件)才能在物理上隐藏外观的子系统。在物理上,我的意思是类 a) 不能从外部实例化,并且 b) 不会由外观外的智能感知显示。
- 我真的必须将我的小项目拆分为一个 .exe 和一个 .dll(用于外观),以便 internal 关键字起作用吗?我的门面子系统只包含 2 个类,一个自己的 .dll 似乎是矫枉过正。
- 如果是,Visual Studio 中将我的外观外包给它自己的程序集的最佳实践方式是什么?
不要误会我的意思,我没有真正需要将我的程序分成几个程序集。我只想从 IntelliSense 隐藏我的外观后面的一些类,并防止从外部实例化。但如果我没记错的话,没有比这更简单的方法了。