美文网首页JavavaJ架构算法设计模式和编程理论Java设计模式
面象对象设计6大原则之一:单一职责原则

面象对象设计6大原则之一:单一职责原则

作者: Java技术栈 | 来源:发表于2017-08-13 11:47 被阅读59次

单一职责原则(SRP),The Single Responsibility Principle

定义

一个类的修改只能有一个被修改的原因。

通俗地讲,就是一个类只能负责一个职责,修改一个类不能影响到别的功能,也就是说只有一个导致该类被修改的原因。我们写代码的都知道尽量要做到低耦合、高内聚的特性,单一职责原则正是保证了类与类之间的低耦合性。一个类如果承担过多的职责,就会有很多原因来导致这个类的被修改,就有很大可能性影响到别的功能。

单一职责原则,看起来是一个非常简单的原则,但真正实践起来也并非易事,因为职责的联合在实际当中是经常遇到的事,也不能随便地去拆分类去适配单一职责模式,所以如何从这些联合的职责中合理地把职责分隔出来更合适的遵守单一职责原则要好好考虑。

看看下面这这个接口是否符合单一职责原则呢?

public interfaceUserInterface{

voidsaveUser(User user);

UsergetUser(long id);

voidupdateUserBalance(long id, BigDecimal balance);

BigDecimalgetUserBalance(long id);

}

这是一个用户接口,提供四个方法:保存用户、获取用户、更新用户余额、获取用户余额,很显然用户个人信息与用户的账户余额是两回事,这样设计在一起耦合非常高,不利于扩展,也不符合单一职责原则,我们可以把它折分成两个,一个为用户信息接口,一个账户接口,如下

public interfaceUserInterface{

voidsaveUser(User user);

UsergetUser(long id);

}

public interfaceAccountInterface{

voidupdateUserBalance(long id, BigDecimal balance);

BigDecimalgetUserBalance(long id);

}

这样分开来,是不是就符合了单一职责原则,类的复杂性和耦合性也降低了,即使用户接口或账户接口加减接口也不影响别的接口实现类。

所以,单一职责原则可以总结为以下优势:

1、低耦合性,影响范围小。

2、类复杂度降低,职责分明,提高了可读性。

3、职责单一,利于维护。

相关文章

  • 单一职责原则

    个人博客原文:单一职责原则 设计模式六大原则之一:单一职责原则 简介 姓名 :单一职责原则英文名 :Single ...

  • 设计模式6原则

    设计模式6原则 参考自csdn:设计模式之六大原则 1 单一职责原则 SRP 单一职责原则(Single Resp...

  • java设计模式

    Ref: java/android 设计模式学习笔记目录 1. 面向对象设计的 6 大原则 单一职责原则 一个类中...

  • 设计模式

    设计原则: 面向对象需要遵循的六大原则: 单一职责原则(SingleResponsibilityPrinciple...

  • 面象对象设计6大原则之一:单一职责原则

    单一职责原则(SRP),The Single Responsibility Principle 定义 一个类的修改...

  • 设计模式的六大原则

    面向对象设计的6大原则: 1.单一职责原则 原则思想:一个方法只负责一件事情。描述:单一职责原则很简单,一个方法 ...

  • 面向对象的六大原则

    设计模式基础 面向对象的六大原则 单一职责原则(Single Responsibility Principle, ...

  • SOLID

    面向对象程序设计5大原则 单一职责原则(Single Responsibility Principle) 开放封闭...

  • 设计模式与项目架构

    设计模式的6大原则 单一职责原则(Single Responsibility Principle,简称SRP )简...

  • 面向对象六大原则

    设计模式的六大原则:(面向对象的六大原则) 一、单一职责原则:Single Responsibility Prin...

网友评论

    本文标题:面象对象设计6大原则之一:单一职责原则

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