本文共 1117 字,大约阅读时间需要 3 分钟。
设计模式是诸多的前辈们在不断的实践过程中总结出来的设计方法,不同的设计模式针对不同的方法。现在公认的设计模式有23种,对应着23种不同的场景,每一种设计模式只能用于特定的场景,23种设计模式实际上对应着七大设计原则,即每个设计模式都对应着一个或者多个设计原则。
实际上就是将复杂的功能模块不断拆分的规则与方法。
七大原则:
1.单一职责原则2.里式替换3.依赖倒置4.开闭原则5.迪米特法则(最少知道原则)6.接口隔离原则7.组合优于继承原则
一:单一职责原则
单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。该原则由罗伯特·C·马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中给出的。马丁表示此原则是基于(Tom DeMarco)和Meilir Page-Jones的著作中的原则发展出的。
所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。
一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响。例如:要实现逻辑和界面的分离。(上述表达来自百度百科)
简单的 来说,就是一个类,一个方法,一个框架只负责的一件事情。
举列:
Math.round() 只负责四舍五入的方法Reader 只负责读取文本文件的方法SpringMVC 只负责简化MVC的开发
举个列子,我之前学习连接数据库的时候,每次对数据库的操作都需要详细实现连接数据库,对数据库内容进行操作两个工作,这时候这个方法里面就有着两个职能。当我需要重新操作的时候,就需要将连接数据库的内容重新写一遍,大大降低了代码的复用性。
“超过5行以上重复的代码,都可以考虑抽取公用的方法。
Rule 2. 【推荐】方法的语句在同一个抽象层级上
反例:一个方法里,前20行代码在进行很复杂的基本价格计算,然后调用一个折扣计算函数,再调用一个赠品计算函数。
此时可将前20行也封装成一个价格计算函数,使整个方法在同一抽象层级上。
”--->《唯品会java开发手册》
最近读的有点多,正好这两点对起来了。
单一职责的优点:1.代码复用性高
2.代码可读性高,结构清晰
转载地址:http://dhii.baihongyu.com/