为什么使用设计模式——设计模式

什么是设计模式

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种设计模式之一

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值