设计模式之设计原则(高内聚,低耦合,设计的目的)

设计模式之设计原则


设计模式的目的:


代码可重用性:相同功能的代码,不用多次编写。
可读性:编程规范性,便于其他程序员的阅读和理解。
可扩展性:当需要增加新的功能的时候,非常方便,称为可扩展性。
可靠性:当我们新增功能后,对原来的功能没有影响。
使程序呈现高内聚、低耦合特性。

什么是高内聚?
我们常说的高内聚,一般都是功能内聚,高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。模块的内聚反映模块内部联系的紧密程度。一个模块只需做好一件事件,不要过分关心其他任务。高内聚性的好处是可以提高程序的可靠性。这个是官方的定义,下面是我的理解: 高内聚就是一个模块内各个元素彼此结合的紧密程度高,并且这些元素的各个组成部分全部都为完成同一个功能而存在,共同完成一个单一的功能,什么意思呢?比如有个计算价格的模块(calculate Price),那么这个模块里面的元素都以计算价格紧密相关,不会有什么其他的功能业务(查询价格,修改价格等),职责非常单一,什么是职责单一?(例如:你是个厨师,你做的活应该只负责炒菜,但是招待客人,洗碗拖地,收银这样活你都干,那么这个你的职责就不单一了,你就要想下,是不是要把这些业务都分出去,招待客人是不是应该是服务员的职责,洗碗拖地是不是保洁的职责,收银是不是前台收银员的职责,这样各干各的活,如果有人不干了,我只要换了人过去顶替就可以了,不会影响到其他的功能),并且这些元素共同完成计算价格这个功能,

3.什么是低耦合?
模块与模块之间、系统与系统之间的交互,是不可避免的, 但是我们要尽量减少由于交互引起的单个模块无法独立使用或者无法移植的情况发生, 尽可能多的单独提供接口用于对外操作, 这个就是所谓的“低耦合”,***耦合指的是模块之间存在依赖,关系越紧密, 耦合越强, 模块独立性越差,***例如:我们平时用的电脑,电脑里面有主板,如果主板要指定的显卡电脑才能运行,那么这个主板和显卡高耦合,日常生活中,我们的电脑主板都会提供一个接口(插槽)给显卡,一般的显卡都可以(除了一些高配显卡,低配主板,带不动),所以主板和显卡是属于低耦合的
总结
一个好的系统应该是分成各个小块,分而治之的思想,把复杂问题分成小问题,逐个击破。每个小块应该是高内聚,小块之间应该是低耦合的。高内聚说的是这个小块的功能已经不可分割了,已经足够简单。耦合说的是这个小块依赖其他小块提供的功能,低就是少,弱,高耦合就是多,而且强。


设计原则


1:单一职责原则:类的设计尽量做到只有一个原因引起变化
2:依赖倒置原则:高层模块不应以来底层模块,两者都应该依赖其抽象。 抽象不应该依赖细节,细节应该依赖抽象。
3:接口隔离原则:客户端不应该依赖它不需要的接口,类之间的依赖关系应该建立在最小的接口上
4:里氏替换原则:子类存在的地方父类不一定能适应,父类存在的地方子类一定能适应
5:迪米特法则(最小知识原则):一个类应该对自己需要耦合和调用的类知道的最少,少,你(被耦合 或调用的类)的内部是如何复杂都和我没关系,那是你的事情,
我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心
6:开闭原则:所有模块对修改关闭,对扩展开放

部分引用:https://blog.csdn.net/ws9029/article/details/116454153

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值