47
设计模式 Design Pattern @张的匠 @1016

Thought works design pattern jiukun zhang

Embed Size (px)

Citation preview

Page 1: Thought works design pattern   jiukun zhang

设计模式Design Pattern

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

Page 2: Thought works design pattern   jiukun zhang

为什么使⽤用设计模式

Page 3: Thought works design pattern   jiukun zhang
Page 4: Thought works design pattern   jiukun zhang

Design设计

Page 5: Thought works design pattern   jiukun zhang

Pattern模式

Page 6: Thought works design pattern   jiukun zhang

设计模式定义

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

摘⾃自Wiki百科

Page 7: Thought works design pattern   jiukun zhang

So In a Nut Shell….

Page 8: Thought works design pattern   jiukun zhang

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

结构模式 • 适配器 • 代理

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

Page 9: Thought works design pattern   jiukun zhang

创建模式Creational Pattern

Page 10: Thought works design pattern   jiukun zhang

Factory

简单 ⼯工⼚厂模式

Page 11: Thought works design pattern   jiukun zhang
Page 12: Thought works design pattern   jiukun zhang
Page 13: Thought works design pattern   jiukun zhang
Page 14: Thought works design pattern   jiukun zhang

抽象⼯工⼚厂模式Abstract Factory

Page 15: Thought works design pattern   jiukun zhang

Intel和AMD平台⼤大战

Page 16: Thought works design pattern   jiukun zhang

把CPU和显卡插到主板上

Page 17: Thought works design pattern   jiukun zhang

单例模式Singleton

Page 18: Thought works design pattern   jiukun zhang

Singleton v1.0

Page 19: Thought works design pattern   jiukun zhang

Singleton v1.1

Page 20: Thought works design pattern   jiukun zhang

Singleton v1.2

Page 21: Thought works design pattern   jiukun zhang

Singleton v1.3

Page 22: Thought works design pattern   jiukun zhang

结构模式Structure  Pattern

Page 23: Thought works design pattern   jiukun zhang

适配器模式Adaptor

Page 24: Thought works design pattern   jiukun zhang

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

Page 25: Thought works design pattern   jiukun zhang
Page 26: Thought works design pattern   jiukun zhang
Page 27: Thought works design pattern   jiukun zhang

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

Page 28: Thought works design pattern   jiukun zhang
Page 29: Thought works design pattern   jiukun zhang

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

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

Page 30: Thought works design pattern   jiukun zhang

代理模式Proxy

Page 31: Thought works design pattern   jiukun zhang

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

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

Page 32: Thought works design pattern   jiukun zhang

代理模式• Proxy模式

Page 33: Thought works design pattern   jiukun zhang

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

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

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

Page 34: Thought works design pattern   jiukun zhang
Page 35: Thought works design pattern   jiukun zhang
Page 36: Thought works design pattern   jiukun zhang

⾏行为模式Behavior  Pattern

Page 37: Thought works design pattern   jiukun zhang

模板⽅方法模式Template

Page 38: Thought works design pattern   jiukun zhang

模板⽅方法模式• template模式

Page 39: Thought works design pattern   jiukun zhang

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

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

Page 40: Thought works design pattern   jiukun zhang
Page 41: Thought works design pattern   jiukun zhang

观察者模式Observer

Page 42: Thought works design pattern   jiukun zhang

观察者模式

• observer模式

Page 43: Thought works design pattern   jiukun zhang

观察者模式

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

Page 44: Thought works design pattern   jiukun zhang
Page 45: Thought works design pattern   jiukun zhang
Page 46: Thought works design pattern   jiukun zhang
Page 47: Thought works design pattern   jiukun zhang