我有一个多层SOA应用程序和一个包含100多个表的数据库.我正在为数据层使用实体框架,该框架负责所有CRUD操作.
我有一个托管在服务上的Facade类,可被所有客户端应用程序调用.
这个Facade类包含诸如
private void DoSomething()
{
//insert to table1
//insert to table 2
//delete from table 3
//more CRUD operations
}
Facade类基本上充满了其他方法的负载,这些方法类似于DoSomething()
因此,客户端将基本上创建Facade类的实例,并获得对所有这些方法的访问.
我现在的问题是,这是门面图案的最佳做法吗?我觉得Facade类太“沉重”了,我不确定如果我的应用程序规模更大,它是否会影响性能.
如果我有很多方法,创建Facade类的实例会是一个非常昂贵的操作吗?
解决方法:
好吧,一旦Facade将子系统封装为对象并为您的客户端的所有业务对象和服务提供了聚合的接口,它就非常适合SOA体系结构.它还可以减少架构中的耦合.我认为您的方法并不繁琐,也不会影响系统的可伸缩性.