架构设计的基本原则

低耦合、高内聚、防止变异(使用接口和适配器防止变异)、关注分离。

1 关注分离

横向分层、纵向分区

(1) 将有关事务模块化,封装到单独的构件(例如子系统)中,并且调用其服务;

(2) 使用装饰者,将所关注的事物(例如安全)置入Decrator对象中,Decorator对象包裹内部类并提取其服务,装饰者在EJB技术中被称为容器,EJB容器围绕内部对象的业务逻辑,在外部的装饰者中增添安全检查;

(3) 使用后便以和面向方面的技术(Aspect-oriented),比如AspectJ以对开发者透明的方式支持在编译之后将横切面关注织入代码。

2 关注点分离之道

好的架构设计必须把变化点错路有致地封装到软件系统的不同部分,为此,必须进行关注点分离。关注点相互分离,也就是说系统中的一部分发生变化,不会影响其他部分。即使需要改变,也能够清晰地识别出哪些部分需要改变。如果需要扩展架构,影响将会最小化,已经可以工作的每个部分都可以继续工作。

首先,可以通过职责划分来分离关注点。面向对象设计的关键所在,就是职责的识别和分配。每个功能的完成,都是通过一系列职责组成的协作链条完成的,当不同职责被合理分离之后,为了实现新的功能只需构建新的协作链条,而需求变更页往往只会影响到少数职责的定义和实现。

其次,可以利用软件系统各部分的通用性的不同进行关注点分离。不同的通用程度意味着变化的可能性不同,将通用性不同的部分分离有利于通用部分的重用,页便于对专用部分进行修改。

另外,还可以先考虑大粒度的子系统,而暂时忽略子系统是如何通过更小粒度的模块和类组成的。在实际中,软件架构师常常将系统划分为一组子系统,并为子系统定义明确的借口,其中的细节将随其后的开发工作慢慢展开。

根据职责分离关注点、根据通用性分离关注点、根据不同粒度级别分离关注点是三种不同维度的思维方式。

你可能感兴趣的:(架构设计,设计)