说说-设计模式总结

本文围绕设计模式展开,阐述了程序编写在耦合性、内聚性等方面的要求,旨在写出优质代码。重点介绍了设计模式的七大原则,包括单一职责、开闭、依赖倒转等原则,并通过多个实例对各原则进行了详细解释,帮助理解其在编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式:

程序编写的要求:自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等目的是为了写出更加优质的代码,是程序更好的运行。

1) 代码重用性 (即:相同功能的代码,不用多次编写)

2) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解)

3) 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)

4) 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)

高内聚,低耦合

 设计模式七大原则:

1. 单一职责原则

       类的职责要单一。就一个类而言,应该仅有一个引起它变化的原因。

       举个简单的例子,我们现在很多时候都直接使用手机拍照,但新闻、时尚杂志等的拍照使用的是相机。手机其实就相当于把相机耦合到手机中去了,而相机却只有拍照这一个职责。大多数时候,一件产品简单一些,职责单一一些,或许是更好的选择,这就是单一职责原则。

如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。

2. 开闭原则

       软件实体可扩展,但不可修改。

就好比“一国两制”,一个国家有两种制度,没有修改原有的管理制度,而是增加了一种新的制度。正所谓对于扩展的开放的,对于更改是封闭的。

3. 依赖倒转原则

高层模块不应该依赖底层模块,两个都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。后面这句话换个方式说就是针对接口编程,不要对实现编程。

举个例子,就好比你的电脑,如果CPU、内存、硬盘都需要依赖具体的主板,主板坏了,所有的部件都不能用了,这显然是不合理的。换句话说,即谁也不要依赖谁,除了约定的接口,大家都可以灵活自如。

4. 里氏代换原则

子类型必须能够替换掉它们的父类型。

举个例子,假如现在父类是鸟类,有个属性是可以飞,子类有个企鹅类,那么很明显企鹅类不能继承鸟类,因为鸟类有会飞的属性,如果子类企鹅类继承父类鸟类,则企鹅必须会飞。

5. 接口隔离原则

接口尽量细化,同时接口中的方法尽量少。

举个设计模式之禅中的例子,星探找美女,星探要去找美女,他需要通过一个标准来找,比如可以分为外形美女和气质美女(即两个接口),这样不管以后是要气质美女还是外形美女,都可以保持接口的稳定。

6. 迪米特法则/最少知识原则

 一个类对自己依赖的类知道的越少越好;一个对象应该对其他对象有最少的了解。

比如体育老师上课前清点人数,他让体育委员来替他清点人数,之后再由体育委员告知结果即可,老师本身并没有接触到其他学生。换句话说,每个类都应该尽量降低成员的访问权限,强调了类之间的松耦合。

7. 合成/聚合复用原则

       尽量使用合成/聚合,尽量不要使用类继承。

合成表示一种强的“拥有”关系,体现了严格的部分与整体的关系,他们的生命周期相同;而聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。

 这里再举个简单的例子,大雁与翅膀是合成关系;而每只大雁都属于一个雁群,即一个雁群可以有多只大雁,所以大雁和雁群是聚合关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值