Monday, August 15, 2011

设计原则之SRP - 单一职责原则 - 一个类应当只有一个引起它变化的原因

多个职责的坏处:
        1. 如果某个类有2个职责,那么对于只使用它一个职责的用户,也必须链接其它职责的代码,会浪费链接间间,编译时间,内存占用。
        2. 部署时会需要用到多余的包。无关职责的变化,也会引起客户的重新构建。
       
所以,我们在设计时,就应当努力发现职责,并把它们相互分离。

可以用FACADE/PROXY模式将职责分离。

        FACADE:
                给客户提供简化的接口(将复杂的子系统封装)。
                例子:家庭影院系统。
                最少知识原则:只和密友谈话。客户知道得越少越好。
                有2个职责的类,可以提供2个不同的外观,分别给不同的客户使用。
                如果客户只使用外观,则内部子系统升级不会对客户造成影响。

No comments: