Thought works design pattern jiukun zhang

Post on 15-Aug-2015

134 views 14 download

Transcript of Thought works design pattern jiukun zhang

设计模式Design Pattern

@⽼老张的匠⼼心 @⻜飞吧1016

为什么使⽤用设计模式

Design设计

Pattern模式

设计模式定义

设计模式这个术语是由Erich Gamma等⼈人在1990年代从建筑设计领域引⼊入到计算机科学中的。它是对软件设计中普遍存在(反复出现)的各种问题,所提出的解決⽅方案。 !设计模式并不直接⽤用来完成程序的编写,⽽而是描述在各种不同情况下,要怎么解決问题的⼀一种⽅方案。

摘⾃自Wiki百科

So In a Nut Shell….

Agenda创建模式 • 简单⼯工⼚厂 • 抽象⼯工⼚厂 • 单例 !

结构模式 • 适配器 • 代理

⾏行为模式 • 模板 • 观察者

创建模式Creational Pattern

Factory

简单 ⼯工⼚厂模式

抽象⼯工⼚厂模式Abstract Factory

Intel和AMD平台⼤大战

把CPU和显卡插到主板上

单例模式Singleton

Singleton v1.0

Singleton v1.1

Singleton v1.2

Singleton v1.3

结构模式Structure  Pattern

适配器模式Adaptor

适配器模式• 类适配器模式

适配器模式• 对象适配器模式

适配器模式• 需要记住的:  – Adaptor模式的⽤用意是要改变源的接⼝口  –与⺫⽬目标接⼝口相容  

• ⾓角⾊色:  –⺫⽬目标(target)  –源(adaptee)  –适配器(adaptor)  • Concrete  class(必须是具体的类)

代理模式Proxy

代理模式• 对其他对象提供⼀一种代理⽤用以控制对这个对象的访问  –在某些情况下,⼀一个对象不能或者不想直接引⽤用另⼀一个对象  –代理模式可以在客户端和⺫⽬目标之间起到中介的作⽤用  

• 其本质是在实际对象和调⽤用者之间插⼊入⼀一个中间⼈人(middle-­‐man)

代理模式• Proxy模式

代理模式• 抽象对象  –⽣生命⺫⽬目标和代理的共同接⼝口  

• ⺫⽬目标对象  –代理使⽤用的⺫⽬目标实例  

• 代理对象  –包含⺫⽬目标对象,给客户端提供服务

⾏行为模式Behavior  Pattern

模板⽅方法模式Template

模板⽅方法模式• template模式

模板⽅方法模式• 声明⼀一些抽象⽅方法迫使⼦子类实现  !

• 两个重要⾓角⾊色:  –抽象模板  –具体模板

观察者模式Observer

观察者模式

• observer模式

观察者模式

• 使⽤用场景:  –⼀一个抽象模型有两个⽅方⾯面,⼀一个依赖于另⼀一个  –两个⽅方⾯面各⾃自独⽴立(在不同的类中)  –⼀一个改变需要同时改变其他对象  –需要通知其他对象,但⽆无法知道都有哪些对象(不希望紧耦合)