设计模式问答
- 你能解释抽象工程模式吗?
- 你能解释建造者模式吗?
- 你能解释原型模式吗?
- 你能解释原型模式中的浅复制和深复制吗?
- 你能解释单例模式吗?
- 你能解释命令模式吗?
- 项目中的设计模式
简介
下面是一些小巧的关于设计模式的问答,以一种问题和答案的形式给出。在本章节中我们会涉及到工厂、抽象工厂、建造者、原型、深浅原型、单例和命令模式。
什么是设计模式?
设计模式是特定场景的一种模式化的解决方案,这种方案是经受过考验和测试的。简单的说,就是你遇到的特定问题有着同样的推荐的解决方案。设计模式从软件开发初期就以某些形式存在着。比如,如果你想实现排序算法,第一件想到的事就是冒泡排序。那么排序是待解决问题,冒泡算法就是解决方案。设计模式就是一样的道理。
设计模式分哪三大类?
设计模式分三大基础类:创建类、构造类和行为类。
创建类设计模式
- 抽象工厂模式(Abstract Factory):创建多个同类型类的一个实例
- 建造者模式(Builder):由分离的对象来构成一个实例
- 原型模式(Prototype):用来被复制或克隆的一个完全初始化的实例
- 单例模式(Singleton):只能有一个类的实例存在。
提示:记忆创建类模式的最好最好方法是记住ABFPS(Abraham Became First President of States).
构造类设计模式
- 适配器模式(Adapter):适配不同类的接口
- 桥接模式(Bridge):将一个对象的实现和抽象分离
- 合成模式(Composite):简单和符合对象的树形结构
- 修饰模式(Decorator):给对象动态添加功能
- 展示模式(Façade):用一个类来代表整个子系统
- 轻量级模式(Flyweight):用于高效分享的细粒度实例
- 代理模式(Proxy):一个对象表示另一个对象
行为类设计模式
- 中介模式(Meditor):定义类之间的简单通信
- 记忆模式(Memoto):存储和恢复一个对象的内部状态
- 翻译者模式(Interpreter):一种包含语言元素语法的方式
- 迭代器模式(Iterator):顺序访问集合元素
- 响应链模式(Chain of Resp):一种在对象链之间传递请求的方法
- 命令模式(Command):将一个请求命令封装为对象
- 状态模式(State):当一个对象状态变化时改变其行为
- 策略模式(Strategy):讲算法封装为一个对象
- 观察者模式(Observer):一种像多个对象通知变化的方法
- 模板方法模式(Template Method):将一个算法的确定步骤延迟都子类中执行
- 访问者模式(Visitor):不改变一个类来定义新的操作。
原文地址:http://www.codeproject.com/Articles/28309/Design-pattern-FAQ-Part-1-Training