概述
什么是设计模式
Christopher Alexander说过:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,这样,你就能一次又一次地使用该方案而不必做重复劳动。这个思想同样适用于面向对象的设计模式,核心就在于提供给了相关问题的解决方案
。
一般而言,一个模式有4个基本要素
1、模式名称(pattern name),它用一两个词来描述模式的问题,解决方案和效果。
2、问题(problem)描述了应该在何时使用模式。
3、解决方案(solution)描述了设计的组成成分,他们之间的相互关系以及各自的职责和协作方式。
4、效果(consequences)描述了模式应用的效果以及使用模式应权衡的问题。
设计模式怎样解决设计问题
1、寻找合适的对象
面向对象程序有对象组成,对象包括了数据和对数据进行操作的过程,过程称为方法或操作。对象收到客户的请求后,执行相应的操作。其中面向对象设计最困难的部分就是如何讲系统分解成对象集合。
2、决定对象的粒度
描述了我们应该决定一个对象应该是什么?
3、指定对象的接口
对象生命的每一个操作指定操作名、作为参数的对象和返回值,这就是所谓的操作的型构(signature)。对象接口描述了该对象所能接受的全部请求的集合,任何匹配对象接口中的型构的请求都可以发送给该对象。
在面向对象系统中,接口是基本的组成部分。对象只有通过他们的接口才能与外部交流。对象接口与其功能实现是分离的,不同对象可以请求做不同的实现,也就是说,两个有相同接口的对象可以有完全不同的实现。
4、描述对象的实现
针对接口编程,而不是针对实现编程
5、运用复用机制
优先使用对象组合,而不是类继承,
6、关联运行时刻和编译时刻的结构
7、设计应支持变化
怎样选择设计模式
- 考虑设计模式是怎么解决实际问题的
- 浏览模式的恶意图部分
- 研究模式怎么样互相关联
- 研究目的相似的模式
- 检查重新设计的原因
- 考虑你的设计中哪些是可变的
设计模式分类
1、创建型模式,5种
工厂方法模式、抽象工厂模式、单例模式
、建造者模式、原型模式
2、结构型模式,7种
适配器模式、装饰器模式
、外观模式、桥接模式、组合模式
、享元模式、代理模式
3、行为型模式,11种
策略模式
、模版方法模式、观察者模式
、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
总结设计模式的六大原则
1、开闭原则OCP
对扩展开放、对修改关闭
2、里氏代换原则LSP
在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类
3、控制反转原则IOC
针对接口编程
、依赖抽象而不依赖于具体
4、接口隔离原则ISP
使用多个隔离的接口,比使用单个接口更好
5、迪米特法则DP
一个实体应当尽量少的与其他实体发生相互作用
,使得系统功能模块相对独立
6、合成复用原则
尽量使用组合/聚合
的方式,而不是使用继承
最后注意:MVC设计模式不属于23种设计模式之一
最后
以上就是笨笨铅笔为你收集整理的为什么使用设计模式——设计模式的全部内容,希望文章能够帮你解决为什么使用设计模式——设计模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复