设计模式
zjj_daniu
这个作者很懒,什么都没留下…
展开
-
GOF 设计模式 Chain of Responsibility模式
Chain of Responsibility(职责链)意图:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。结构图在以下情况使用:有多个对象可以处理一个请求,哪个对象处理该请求运行时自动确定。你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。可处理一个请求的对象集合应被动态指定实现职责链就是将多个处理对象串起来,可以是线性的,也可以是树型的。请求在链中传递直至遇到可以处理的对原创 2020-09-01 15:28:16 · 220 阅读 · 0 评论 -
GOF 设计模式 Flyweight模式 笔记
Flyweight(享元模式)意图:运用共享技术有效地支持大量细粒度的对象。结构图在以下情况使用一个应用程序使用了大量的对象完全由于使用大量的对象造成很大的存储开销对象的大多数状态都可以变为外部状态如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象应用程序不依赖对象标识。由于Flyweight对象可以被共享,因此对于概念上明显有别的对象,标识测试将返回真值。实现flyweight是一个共享对象,它可以同时在多个场景中使用,并且在每个场景中flyweight都可以作为原创 2020-08-26 19:31:21 · 189 阅读 · 0 评论 -
GOF 设计模式Facade模式 笔记
Facade(外观)意图:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。结构图在以下情况使用:当你要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变的越来越复杂,大多数模式使用时都会产生更多更小的类。这使得子系统更具有可复用性,也更容易对子系统进行定制,但也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可以提供一个简单的缺省视图,这一视图对大多数用户来讲已经足够,而那些需要更多的可定制性的用户可以越过原创 2020-08-25 19:13:52 · 198 阅读 · 0 评论 -
GOF 设计模式 Decorator模式 笔记
Decorator(装饰)意图:动态的给一个对象添加一些额外的职责。就添加功能来说,Decorator模式相比生成子类更为灵活结构图:在以下情况适合使用在不影响其他对象的情况下,以动态,透明的方式给单个对象添加职责处理那些可以撤销的职责当不能采用生成子类的方法进行扩充时,一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是,类定义被隐藏,或类定义不能用于生成子类。实现:就添加功能,扩展父类来说,装饰模式要比继承要灵活,而且可以有原创 2020-08-24 21:17:31 · 244 阅读 · 0 评论 -
GOF设计模式 Composite模式 笔记
Composite(组合)意图:将对象组合成树形结构以表示“部分–整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。结构图:在以下情况使用:想表示对象的部分-整体层次结构希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。实现主要是来表示部分-整体的结构,我们应该一致的对待 部分和整体 ,应该统一的使用它们。为了简化组合的遍历和管理,通常在Component类中定义父类部件引用。实现一个简单的目录结构Entry 顶层类 注意原创 2020-08-22 11:28:03 · 195 阅读 · 0 评论 -
GOF设计模式 Bridge模式 笔记
Bridge(桥接模式)意图:将抽象部分和他的实现部分相分离,使他们可以独立的变化结构图在以下情况可以使用:不希望在抽象和他的实现部分之间有一个固定的绑定关系。例如,在程序运行时实现部分应可以被选择或者切换。类的抽象以及他的实现都应该可以通过生成子类的方法加以扩充。对一个抽象的实现部分的修改对客户不产生影响对客户完全隐藏抽象的实现部分想在多个对象之间共享实现,但同时要求客户并不知道这一点。实现通常模式模式下,我们通过继承来扩展类,并将实现部分写在具体类中,但是此方法不够灵活,继承使原创 2020-08-22 10:24:16 · 207 阅读 · 0 评论 -
GOF设计模式 Adapter模式 笔记
Adapter(适配器)意图:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。在以下情况可以使用你想使用一个已存在的类,而他的接口不符合你的需求你想创建一个可以复用的类,该类可以与其他不相干的类或不可预见的类(及那些接口可能不一定兼容的类)协同工作。你想使用一些已经存在 的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配他的父类接口。适配器即在另一个不相关(接口不兼容)的系统中使用该类。类适配器原创 2020-08-22 09:28:56 · 162 阅读 · 0 评论 -
GOF 设计模式 单件模式 笔记
Singleton(单件模式)意图:保证一个类仅有一个实例,并提供一个访问它的全局终点。结构在以下情况使用它当类只能有一个实例而且客户可以从一个众所周知的访问点访问他当这个唯一实例应该是通过子类化可扩展的,并且客户应该无须更改代码就能使用一个扩展的实例时对于某些类来说,只有一个实例是很重要的,可以让类自身保存它的唯一实例,并这个类隐藏他的创建接口,并提供一个访问实例的接口。还可以使用惰性初始化,或者用一个静态内部类保存。Apublic class A { private sta原创 2020-08-20 11:26:31 · 108 阅读 · 0 评论 -
GOF 设计模式 工厂方法模式 笔记
Factory Method(工厂方法)意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod 使一个类的实例化延迟到其子类。结构在以下情况使用当一个类不知道它所创建的对象的类的时候当一个类希望由他的子类来指定它所创建的对象的时候当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。工厂方法本身并不生产对象,它将生产的对象延迟到了子类工厂实现。食物 Foodpublic class Food {}原创 2020-08-20 11:05:32 · 188 阅读 · 0 评论 -
GOF 设计模式 原型模式 笔记
原型模式意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。在以下情况下可以使用Prototype模式:当一个系统应该独立于他的产品创建,构成和表示时当要实例化的类是在运行时指定时,例如,通过动态装载为了避免创建一个与产品类层次平行的工厂类层次时当一个类的实例只能有几个不同状态组合的一种时,建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类方便些。结构对于应用如果只需要频繁创建几个不同状态的产品时,选择克隆原型可能要比创建新对象效率要高。但是对于每一种原创 2020-08-20 10:23:13 · 143 阅读 · 0 评论 -
GOF 设计模式 builder模式笔记
Builder(生成器)意图:将一个复杂对象的构建与它的表示相分离,使得同样的构建过程可以创建不同的表示。在以下情况使用Builder模式当创建复杂的对象应该独立于该对象的组成部分以及它们的装配方式时。当构造过程必须允许被构造的对象有不同的表示时。结构图builder模式更注重与一个复杂对象的创建,像组装一样,一层一层,一个模块一个模块的装配,是一个由简单对象到复杂对象的过程。假设现在去淘宝请人组装机子,一台好的(goodcomputer),一台差的(badcomputer)Direc原创 2020-08-19 22:40:18 · 168 阅读 · 0 评论 -
GOF 设计模式 AbstractFactory 模式笔记
创建型模式创建型设计模式抽象了实例化过程。它们帮助一个系统独立于如何创建,组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。创建型模式有五类:Abstract Factory(抽象工厂) — 对象创建型模式Builder(生成器) — 对象创建型模式Factory Method(工厂方法) — 对象创建型模式Prototype(原型) — 对象创建型模式Singleton(单件) — 对象创建型模式Abstract Facto原创 2020-08-19 22:14:57 · 108 阅读 · 0 评论