一句话设计模式
来源:互联网 发布:金猪报喜源码下载 编辑:程序博客网 时间:2024/05/01 17:01
一句话设计模式
如果有面试官问:你知道6大原则是哪6大吗?你应该能一一列举出来。又问:你能说出23种设计模式吗?你有点艰难了。再问:列出每种设计模式,并说出他们的概念,你要奔溃了……
模式很多,书很厚,不能每次都翻书,我需要精简的总结一下.
=================
单一职责原则
无论比变量、方法、类、接口等等,他们的职责或代表的含义负责的功能都应该是单一独立的,一个模块不能负责超过两种事情,一种事情也尽量不要在多个地方都进行实现。
里氏替换原则
凡是父类、接口可以出现的地方,其子类、实现类都可以无缝替换
依赖倒置原则
模块之间的依赖应该通过抽发生(接口、超类),而不是具体的实现类。
接口隔离原则
客户端不应该依赖它不需要的接口,类与类之间的依赖也应该建立在最小的接口上。
迪米特法则
一个对象要对其他对象有最少的了解,只知道自己必须要知道的,只关心自己直接依赖的。
开闭原则
在中后期开发中,在功能的扩展与修改上。最小程度的对源代码进行修改,通过增加代码实现扩展。
====================
单例
通过私有化构造函数、本类静态成员对象从而保证在该系统中此类只有一个实例。
工厂方法
- 普通工厂
定义一个创建对象的接口,由其子类决定如何实现。并交给客户端决定创建哪类对象。
- 简单工厂
不需要多个工厂类的情况下,将工厂类方法变为静态方法。
- 抽象工厂
负责生产一组相关或相互依赖的产品族的工厂。
模板方法
父类负责定义“算法”的框架,子类负责算法的具体实现。
将不变的共同的封装进父类中,变化的由各子类实现
建造者模式
将对象的“组装”“创建”过程进行封装。使得不同封装过程有着不同的表示结果。
(而更多的实践中,我们更倾向于依照不同零件的载入,给予不同的创建结果)
代理模式
委托的一种。为其他对象提供一个代理对象,控制对这个对象的访问。代理模式更倾向于对过程的控制。
原型模式
在原有实例的基础上,通过clone关键字拷贝原有实例,创建新的对象。
(但要注意深拷贝和浅拷贝的问题)
中介者模式
用中介对象封装一系列对象之间的交互,使得各对象之间不需要显示的交互,使耦合松散。而且可以独立改变他们之间的交互。
命令模式
将一个请求及请求实现的过程和依赖的类封装成一个对象,客户端只需要调用该请求即可。
责任链模式
将多个处理请求的对象按照优先级连成一条链,并沿着该条链处理请求,使得多个对象都有机会处理。
装饰模式
委托的一种。动态的为其他对象添加额外的功能。装饰模式更倾向于对功能的扩展
策略模式
委托的一种。定义一组算法,将每一种算法封装起来,并且他们之间可以互换。策略模式更倾向于替换
适配器模式
将一个类转换为另一个类,使得原本不能直接依赖的类变得可以依赖。
迭代器模式
提供一种方法访问一个容器各个元素,而又不暴露该对象的内部细节。
组合模式
一个树形结构的对象组合关系,将单个对象和组合对象的共同部分抽象。使得在使用中具有一致性。
观察者模式
利用回调方法,建立对象之间一对多的依赖关系。使得被观察对象在状态改变时,其他观察对象都可以得到通知。
门面模式
对一个子系统进行包装,子系统与外部系统之间的交互必须通过该门面对象进行。使得子系统更易于使用与替换。
备忘录模式
保存一个对象的状态,在需要时将该对象恢复到原先保存的状态下。
访问者模式
将对象的“展示”封住到访问类中,将数据的和其展示解耦。其实现类似回调机制。
状态模式
以状态为类型,封装对象因为状态改变而引起的行为变化。
解释器模式(暂不熟)
享元模式
就是对象池机制(模式)
桥梁模式
将抽象与现实分离。使两者可以独立改变而不影响对方。
- 设计模式一句话解释
- 一句话常用设计模式
- 一句话记住设计模式
- 一句话概括设计模式
- 设计模式一句话描述
- 设计模式一句话总结
- c++一句话设计模式
- 一句话描述设计模式
- 设计模式一句话总结
- 一句话设计模式
- 一句话的设计模式
- 一句话设计模式
- 一句话设计模式
- 一句话设计模式
- 23种设计模式一句话
- 一句话描述一种设计模式
- 一句话概括各种设计模式
- 设计模式的一句话总结
- iOS学习--老菜鸟的storyboard学习之路
- 002.Plus One
- 深入理解js构造函数
- AFNetworking 3.0迁移指南
- 系统Settrings分析及如何添加新的设置项
- 一句话设计模式
- Android签名机制介绍:生成keystore、签名、查看签名信息等方法
- mysql Error Code
- UIGestureRegnizer 的一些注意点
- ubuntu下安装opencv 读取摄像头
- 2016年3月22日 14:48:59
- 类才有设计模式?用方法不行么?
- Android-->UDP协议的Socket数据传输
- 存储过程基本概念和操作