美文网首页
java设计模式之六大设计原则

java设计模式之六大设计原则

作者: franky_hu | 来源:发表于2017-12-31 15:03 被阅读0次

一、单一职责原则

什么是单一职责原则呢?--应该有且仅有一个原因引起类的变更。

there should never be more than one reason for a class to change.

举例:【来自设计模式之禅】

IPhone:
dial 【拨号】
chat【通话】
handup【结束】

上面是一个正常的通话接口:拨号、通话、结束

但是你会发现能够引起这个变化的有两个,一个是操作:拨号,挂电话,还有一个就是通信,所以修改如下:

IconnectManager【interface】
void dial
void hangup
ITransferData 【interface】
void chat

然后用两个类去实现它

class ConnectManager
class TransferData

这样又太过于繁琐,因为打电话这一个动作phone 必须需要上面两个同时实现,就是一个手机类需要把ConnectionManager和DataTransfer组合在一起才可以使用。组合是一种强耦合,你和我有共同的生命周期,所以下面这种设计才是完美的。
所以下面这种设计才是简介而通用:【phone类同时实现他们两个接口,吧两个职责融合在一个类中】

class phone implement ITransferData,IConnectMamager

总结单一职责的好处:

  • 类的复杂性 降低,实现什么职责都有清晰明确的定义
  • 可读性提高,复杂性降低了,那当然可读性就提高了
  • 可维护性提高,可读性高,那当然更容易维护了
  • 变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这样的系统扩展性,维护性都有非常大的帮助。

单一职责适用于接口,类和方法。但是现实中由于成本,工期等众多因素,类的设计很难实现单一职责。所以对于单一职责的建议是:接口一定要做到单一职责,类的设计尽量做到单一职责。

相关文章

  • 无标题文章

    设计模式之六大原则(转载) 设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多,但是很多地方解释...

  • 设计模式 - 六大原则

    Reference 快速理解-设计模式六大原则 设计模式的六大原则 设计模式之六大原则作者:海子出处:http:/...

  • 设计模式六大原则

    设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多...

  • 设计模式目录

    1. 设计模式中类的关系和六大设计原则 一、设计模式简介二、设计模式中类的关系三、设计模式的六大设计原则之单一职责...

  • 设计模式

    设计模式六大原则[设计模式六大原则(1):单一职责原则][设计模式六大原则(2):里氏替换原则][设计模式六大原则...

  • 设计模式之开闭原则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

  • 设计模式之迪米特法则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

  • 设计模式之依赖倒置原则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

  • 设计模式之接口隔离原则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

  • 设计模式之单一职责原则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

网友评论

      本文标题:java设计模式之六大设计原则

      本文链接:https://www.haomeiwen.com/subject/qqfagxtx.html