设计模式-开篇

目录

一、设计模式是什么

二、设计模式设计原则

三、设计模式分类

3.1 创建型模式

3.2 结构型模式

3.3 行为型模式


一、设计模式是什么

设计模式(Design pattern)是解决软件开发过程中某些特定问题提出的一些解决方案;使用设计模式,可以帮助我们增强代码的可重用性、可维护性、灵活性,实现代码的高内聚和低耦合。

二、设计模式设计原则

设计原则是设计模式的基石,首先理解了设计原则,再去学习设计模式会更加得心应手,甚至可以自己设计出一套设计模式。

1、单一职责原则

有且仅有一个原因引起类的变更,重点在于职责划分

作为一款最基本的手机,具有打电话功能,类图如下:

IPhone接口可以进一步拆分:

 

 将数据传输接口升下级,提供上网方法,手机可具有上网功能

 

2、接口隔离原则

定义:不依赖不需要的接口;类间的依赖关系应该建立在最小的接口上

要求依赖接口的方法尽量少

和单一职责不同,这里要求接口方法尽量少;比如某个接口有10个方法,属于同一职责,遵守单一职责原则,但违反接口隔离原则

3、里氏替换原则

定义:所有引用基类的地方必须能透明地使用其子类的对象

依赖父类,调用父类方法,执行子类行为

4、依赖倒置原则

定义:高层模块不依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象

依赖接口或者抽象类,不依赖实现类

 先举个反例,高层直接依赖底层;动物管理员给动物送水,现在管理员管理两个动物,需要写两个方法,对两个动物产生依赖;如果管理员调岗或者能力较强,增加了其他动物的管理呢,10个动物就要写10个方法;现在管理员因为性别原因,体力有些差距,男性管理员力气较大,直接拎桶倒水,而女性管理员力气稍小,要用舀具舀水,现在来了一个女性管理员,那么需要写一个同样具有10个方法的女性管理员类,这样显然扩展性太差。现在把类图改之后如下:

 这样是不是就好太多了,不管是什么动物,把水送到它面前就可以了。

5、迪米特原则

定义:一个对象应该对其他对象有最少的了解

最少知识原则,知道的越少越好

例:现在来了个领导,需要开发来汇报任务,创建三个类任务、开发、领导如下:

 
客户端代码如下:

 

 此时的类关系:

 

 

 task类对象在Leader类中是方法内的临时变量,依然要对Task类进行依赖

稍微调整下客户端和领导类的代码

 现在的类图如下:

 这样是不是就减少了Leader对其他类的依赖。

6、开闭原则

定义:对扩展开放,对修改关闭

前五个原则就是为此原则服务的

三、设计模式分类

3.1 创建型模式

对象实例化即创建对象的模式,用于解耦对象的实例化过程

1.单例模式

2.工厂模式

3.抽象工厂模式

4.建造者模式

5.原型模式

3.2 结构型模式

把类或者对象结合在一起形成一个更大的结构

1.代理模式

2.装饰器模式

3.桥接模式

4.适配器模式

5.组合模式

6.外观模式

7.享元模式

3.3 行为型模式

类和对象进行交互、责任划分及算法

1.策略模式

2.模板方法模式

3.状态模式

4.访问者模式

5.责任链模式

6.命令模式

7.观察者模式

8.中介者模式

9.迭代器模式

10.解释器模式

11.备忘录模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值