一句话设计模式
Posted lightverse
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一句话设计模式相关的知识,希望对你有一定的参考价值。
(实际是草稿)
1.简单工厂
不通过new 来产生对象,通过Factory.createObject
2.抽象工厂
生产多个对象,但是对象直接有联系 通过派生多个工厂实例来生产具体对象
(抽象工厂确定抽象产品的种类)
3.工厂方法
只有一种抽象产品,可以有多个具体产品,不同具体工厂根据参数确定不同具体产品
4.建造者模式
减轻设计负担,可以将实际建造推迟到builder方法
5.原型模式
必须实现cloneable接口,快速建造对象
6.适配器模式
两个接口不兼容,实现client的接口,同时有老接口的引用
Clinet -- > doA
doA{
other.doB();
}
7.桥接模式
对于两个变化不相干的类,可以直接把另一个通过类构造器注入(保证正常运行,提醒客户需要另一个的协作)。
8.过滤器模式
public interface Criteria {
public List<Person> filter(List<Person> persons);//过滤了一些,输出就少了一些
}
9.组合模式
树结构,子节点和父节点. 统一接口 方便遍历
10.装饰器模式
就是实现了和需要装饰东西一样的接口 然后把它注入到里面
除了它的接口直接调用注入对象的功能,它还可以附加一些功能
11.外观模式
多个简单类可以用一个复杂类来替代,暴露出方法,不暴露简单对象
12.享元模式
对象池,注意对象要有充分的复用性(设计对象的时候考虑)
13.代理模式
为了解决访问原始对象难(跨进程) ,或暂时无法访问(别人正在用),或有代理有更好方案(可以获取缓存代替直接调用)
14.责任链模式
需要多个处理类进行处理,不过顺序是可以基本确定的,每个处理类有关于下一个责任人的引用(setNextHandle)
15.命令模式
客户不与对象直接打交道,只可以和这些对象打交道的对象打交道。
16.解释器模式
对语法进行处理生成抽象语法树
17,迭代器模式
又想可以集合遍历,又不想暴露集合的排列方式(hasNext?)
18.中介者模式
各个对象的责任都很清晰 但是它们之间又需要通信,交给中介者来做
19.备忘录模式
需要保存对象的状态,在恰当的时候还可以恢复它,同时最好有个管理者管理对象们
20.观察者模式
有观察者,被观察的主题,客户。
客户将将需要被观察的主题交给观察者,观察者根据自身情况订阅。订阅了之后,当主题有变化,会通知观察者。【回调机制】
21.状态模式
需要执行的行为与状态有关,不如为不同的状态单创建一个对象,只需要设置状态,之后对应的调用交给当前状态对象处理。
22.空对象模式
在数据无效时提供了默认实现,虽然效果是什么都不做。但总比可能引起的崩溃要好。
23.策略模式
如果一个类其他功能都几乎一样,只有策略可以自由选择。可以为策略单独弄一个,这样客户可以自由切换或者自己也根据条件(数据源等)切换。
24.模板模式
有时候一类行为有大量通用的逻辑,但是有小部分不一样或者输入类型不同,可以把能复用的做成父类,子类继承实现具体相关的代码。
25.访问者模式:
有两个部分,一个是访问者,一个是被访问者,
访问者又想使用抽象接口来访问访问者,又想有所区分
以上是关于一句话设计模式的主要内容,如果未能解决你的问题,请参考以下文章