设计模式学习笔记
来源:互联网 发布:网络画板 编辑:程序博客网 时间:2024/06/01 07:50
软件设计原则
1 单一职责原则
2 开闭原则
3 里氏代换原则
4 依赖倒转原则
5 接口隔离原则
6 合成复用原则
7 迪米特法则(最少知道原则)
设计模式
一、创建型模式
1 抽象工厂模式
2 创造者模式
3 工厂方法模式
4 原型模式
5 单例模式
单例模式具备以下几个特点:1 只有一个实例;2 能够自我实例化 3 提供全局访问点;
单例模式的主要优点就是节约系统资源、提高系统效率,同时也能够严格控制客户对它的访问。也许就是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了"单一职责原",同时也没有抽象类,所以扩展起来有一定的困难
二、结构型模式
结构型模式主要是用于处理类或者对象的组合,它描述了如何将类或者对象更好的组合起来,是从程序的结构上来解决模块之间的耦合问题。
1 适配器模式
所谓适配器模式就是将一个类的接口,转换成客户期望的另一个接口。它可以让原本两个不兼容的接口能够无缝完成对接。
2 桥接模式
所谓桥接模式就是将抽象部分和实现部分分离开来,使得他们能够独立变化。
3 组合模式
组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。它定义了如何将容器对象和叶子对象进行递归组合,使得客户在使用的过程中无须进行区分,可以对他们进行一致的处理。
4 装饰者模式
我们可以通过继承和组合的方式来给一个对象添加行为,虽然使用继承能够很好拥有父类的行为,但是它存在几个缺陷:一、对象之间的关系复杂的话,系统变得复杂不利于维护。二、容易产生“类爆炸”现象。三、是静态的。在这里我们可以通过使用装饰者模式来解决这个问题。
装饰者模式,动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。虽然装饰者模式能够动态将责任附加到对象上,但是他会产生许多的细小对象,增加了系统的复杂度。
5 外观模式
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。
6 享元模式(Flyweight)
7 代理模式
代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。
三、行为型模式
1、职责链模式(Chain of Responsibility)
2、命令模式(Command)
3、解释器模式(Interpreter)
4、迭代器模式(Iterator)
5、中介者模式(Mediator)
6、备忘录模式(Memento)
7、观察者模式(Observer)
何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新。
8、状态模式(State)
9、策略模式(Strategy)
10、模板方法模式(Template Method)
11、访问者模式(Visitor)
参考博客:http://www.cnblogs.com/chenssy/p/3357683.html
1 单一职责原则
2 开闭原则
3 里氏代换原则
4 依赖倒转原则
5 接口隔离原则
6 合成复用原则
7 迪米特法则(最少知道原则)
设计模式
一、创建型模式
1 抽象工厂模式
2 创造者模式
3 工厂方法模式
4 原型模式
5 单例模式
单例模式具备以下几个特点:1 只有一个实例;2 能够自我实例化 3 提供全局访问点;
单例模式的主要优点就是节约系统资源、提高系统效率,同时也能够严格控制客户对它的访问。也许就是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了"单一职责原",同时也没有抽象类,所以扩展起来有一定的困难
二、结构型模式
结构型模式主要是用于处理类或者对象的组合,它描述了如何将类或者对象更好的组合起来,是从程序的结构上来解决模块之间的耦合问题。
1 适配器模式
所谓适配器模式就是将一个类的接口,转换成客户期望的另一个接口。它可以让原本两个不兼容的接口能够无缝完成对接。
2 桥接模式
所谓桥接模式就是将抽象部分和实现部分分离开来,使得他们能够独立变化。
3 组合模式
组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。它定义了如何将容器对象和叶子对象进行递归组合,使得客户在使用的过程中无须进行区分,可以对他们进行一致的处理。
4 装饰者模式
我们可以通过继承和组合的方式来给一个对象添加行为,虽然使用继承能够很好拥有父类的行为,但是它存在几个缺陷:一、对象之间的关系复杂的话,系统变得复杂不利于维护。二、容易产生“类爆炸”现象。三、是静态的。在这里我们可以通过使用装饰者模式来解决这个问题。
装饰者模式,动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。虽然装饰者模式能够动态将责任附加到对象上,但是他会产生许多的细小对象,增加了系统的复杂度。
5 外观模式
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。
6 享元模式(Flyweight)
7 代理模式
代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。
三、行为型模式
1、职责链模式(Chain of Responsibility)
2、命令模式(Command)
3、解释器模式(Interpreter)
4、迭代器模式(Iterator)
5、中介者模式(Mediator)
6、备忘录模式(Memento)
7、观察者模式(Observer)
何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新。
8、状态模式(State)
9、策略模式(Strategy)
10、模板方法模式(Template Method)
11、访问者模式(Visitor)
参考博客:http://www.cnblogs.com/chenssy/p/3357683.html
0 0
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式【学习笔记】
- 设计模式 学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- EditText输入框禁止输入Emoji表情符
- java.util.Date cannot be cast to java.sql.Timestamp
- android------ Camera组件的整体架构设计简介
- Python Web 4 —— 让页面变好看点BootScrap插件
- 两种mysql对自增id重新从1排序的方法
- 设计模式学习笔记
- CString文件路径 使用fopen打开
- android 5.0之后利用Intent传递Serializable对象存在问题
- sql insert values 后面的值是单引号,还是没有引号问题由其表中数据格式而定
- Ajax 上传文件
- 解决PB9.0版本 db profile中 MSS MS SQL Server选项不见的问题?
- Eclipse关闭XML文件验证的方法
- 避免IE执行AJAX时,返回JSON出现下载文件
- UIView的xib关联问题