1 SRP
SRP(Single Responsible Principle), 单一职责原则,这是面对的最基本原则,也是实现弹性设计的最基本原则。
每个类或接口定义应该只包含一种明确的职责,同时仅有一种原因会导致这种定义的修改。一个复杂的类或接口的定义包含多个责任,很容易使你的设计失去弹性,很多因素都会导致这个类或接口的变更,由于它含有多种职责,这就意味着它是多种服务的提供者,会有多种依赖于它的客户类,他的变更可能会导致大范围的变更。
在作者看来,优先级最高的是你首先要保证接口的单一职责及方法的单一职责,接口通常意味可以更换不同的实现,为一个接口定义过多的职责意味着每个实现都会涉及多个职责,这将导致无法实现更小粒度的实现的复用。
2 面向抽象编成
如果你已经读过GOF的《设计模式》,你便知道其中每一个模式都是基于此原则的,抽象(或接口)有效的解除了服务调用者和服务提供者间的耦合。
3 使用配置
通过修改配置文件便可以改变系统的某些特性,这种修改的区别于修改代码,对于Java,C++而言这种修改是不需要编译,有的修改甚至可以在运行时生效。DSL地运用可以使配置更加具有可读性及更强的描述能力。在设计时将实现分为配置及框架部分是非常灵活的结构。