Architecture 分层架构与封装
我正在开发一个项目,最终它将是一个web应用程序。但我尝试采用一种分层的方法来访问业务对象和数据,我在一个空白的解决方案中创建了以下类库项目:Architecture 分层架构与封装,architecture,encapsulation,layered,Architecture,Encapsulation,Layered,我正在开发一个项目,最终它将是一个web应用程序。但我尝试采用一种分层的方法来访问业务对象和数据,我在一个空白的解决方案中创建了以下类库项目: MyCompany.MyProject.Repository MyCompany.MyProject.Model MyCompany.MyProject.Service MyCompany.MyProject.Repository具有对MyCompany.MyProject.Model的引用 MyCompany.MyProject.Service引用了
MyCompany.MyProject.Repository
MyCompany.MyProject.Model
MyCompany.MyProject.Service
MyCompany.MyProject.Repository具有对MyCompany.MyProject.Model的引用
MyCompany.MyProject.Service引用了MyCompany.MyProject.Model和MyCompany.MyProject.Repository
我的这个小框架将来将被多个应用程序使用,因此我将分别在web应用程序中创建它们
我有两个问题:
关于应用程序分层,这种方法是否正确,web应用程序或任何需要使用我的框架的应用程序都需要在其Bin目录中包含所有三个DLL-我是否正确理解这一点
MyCompany.MyProject.Model项目包含我的所有业务对象。关于封装-例如,我有一个客户对象:
公共类客户
私有\u客户ID为Int32
公共属性CustomerID为Int32
收到
返回\u客户ID
结束
Friend SetByVal值为Int32
_customerID=值
端集
端属性
末级
这是我认为应该公开客户对象ID的方式,因为集合上的Friend access修饰符,客户ID应该只能由框架在内部设置,并且只能由web应用程序或将来创建的任何其他应用程序在外部读取。但是,因为我的代码位于不同的类库项目中,例如MyCompany.MyProject.Repository就无法访问它,即使我的名称空间也一样
这似乎不符合我对封装的理解,我在这里做错了什么
非常感谢你的帮助
谢谢。您描述的场景比较常见。在这种情况下,我更喜欢使用朋友程序集。它们允许访问内部.net或朋友VB成员。您可以找到有关好友示例的更多信息 希望有帮助