设计模式
木已成粥
这个作者很懒,什么都没留下…
展开
-
设计模式之创建型模式:原型(Prototype )
意图 用原型示例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 ---...原创 2019-07-28 22:20:09 · 131 阅读 · 0 评论 -
设计模式之行为模式:访问者(visitor)
意图 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作; ...原创 2019-08-08 21:05:32 · 189 阅读 · 0 评论 -
设计模式之创建型模式:工厂模式( Factory )
意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。 ...原创 2019-07-28 21:38:46 · 131 阅读 · 0 评论 -
设计模式之结构型模式:装饰(Decorator)
意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Descorator模式相比生成子类更为灵活。 适用性 在不影响其他对象的情况下,以动态,透明的方式给单个对象添加职责。 处理那些可以撤销的职责。 当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类...原创 2019-08-01 22:36:36 · 190 阅读 · 0 评论 -
设计模式之行为模式:观察者(Observer)
意图: 定义对象中的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 ...原创 2019-08-05 21:34:38 · 142 阅读 · 0 评论 -
设计模式之行为模式:策略(Strategy)
意图 定义一系列算法,把它们一个个封装起来,并且使他们它们可以互相替换。本模式使得算法可独立于使用它的客户而变化 适用性 许多相关的类仅仅是行为有异。策略模式提供了一种用多个行为中的一个行为来配置一个类的方法; 需要适用一个算法的不同变体 算法使用客户不应该知道的数据。 一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现。 结构 参与者 Strateg...原创 2019-08-05 19:58:43 · 248 阅读 · 0 评论 -
设计模式之结构型模式:组合(Composite )
意图 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 适用性 想表示对象的部分-整体层次机构 希望忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。 结构 参与者 Component 为组合中的对象声明接口 在适当的情况下,实现所有类共有接口的缺省行为 声明一个接口用于访问和管理Component...原创 2019-07-31 22:14:30 · 128 阅读 · 0 评论 -
设计模式之行为模式:状态(State)
意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类 适用性 一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变行为 一个操作中有庞大的多分枝的条件语句,且这些分支依赖于对象的状态; 结构 参与者 Context 定义客户感兴趣的接口 维护一个ConcreteState的子类的实例 State 定义一个接口以...原创 2019-08-04 20:58:06 · 160 阅读 · 0 评论 -
设计模式之结构型模式:代理(Proxy)
意图 为其他对象提供一种代理可以控制对这个对象的访问 适用性 远程代理(remote proxy)为一个对象在不同的地址空间提供局部代表。 虚代理(virtual proxy)根据需要创建开销很大的对象 保护代理(protection proxy)控制对原始对象的访问。保护代理用于对象应该有不同的访问权限的时候。 智能指引(Smart Reference)取代了简单的指针,它在访问对象事...原创 2019-08-04 20:25:24 · 127 阅读 · 0 评论 -
设计模式之结构型模式:享元(Flyweight)
意图 运用共享技术有效地支持大量细粒度的对象 适用性 一个应用程序使用了大量的对象; 完全由于使用大量的对象,造成很大的开销; 对象的大多数状态都可变为外部状态; 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象 应用程序不依赖于对象标识,由于Flyweight对象可以被共享,对于概念上明显有区别的对象,标识测试将返回真值; 结构 参与者 Flyweigh...原创 2019-08-04 18:11:51 · 118 阅读 · 0 评论 -
设计模式之结构型模式:外观(Facade)
意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 适用性 当你想要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具有可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可以提供一个简单的缺省视图...原创 2019-08-04 17:14:23 · 100 阅读 · 0 评论 -
设计模式之创建型模式:生成器(Bulider )
意图 将一个复杂对象的构建与表示分离,使得同样的构造过程可以创建不同的表示 适用性 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式 当构造过程必须允许被构造对象由不同的表示 结构 参与者 Bulider 为创建一个Product对象的各个部件指定抽象接口 ConcreteBulider 实现Bulider的接口以构造和装配该产品的各个部件 定义...原创 2019-07-25 20:26:03 · 290 阅读 · 0 评论 -
设计模式之结构型模式:桥模式(Bridge)
意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化 动机 当一个抽象可能由多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不同的方式加以实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象和实现部分进行扩展,重用。 适用性 不希望在抽象和它的实现部分之间有一个固定的绑定关系 类的抽象以及它的实现部分都应该通过时生成子...原创 2019-07-30 21:34:14 · 370 阅读 · 0 评论 -
设计模式之结构型模式:适配器(Adapter)
适配器(Adapter)意图适用性结构参与者协作效果实现代码示例对象适配模式相关模式 意图 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 适用性 你想使用一个已经存在的类,而它的接口不符合你的需求 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(接口可能不一定兼容的类)协同工作 (仅适用对象Adapt...原创 2019-07-29 22:05:00 · 141 阅读 · 0 评论 -
设计模式之创建型模式:抽象工厂(Abstract Factory )
如有错误,欢迎斧正! 意图 提供一个创建一系列相关或相互依赖的接口,而无需指定他们具体的类 别名 kit 适用性 一个系统要独立于它的产品的创建,组合和表示时; 一个系统要由多个产品系列中的一个来配置时; 当你要强调一系列相关产品对象的设计便于进行联合使用时; 当你提供一个产品类库,而只想要显示他们的接口而不是实现时; 结构图 参与者 AbstractFactory--...原创 2019-07-24 22:44:54 · 121 阅读 · 0 评论 -
设计模式之创建型模式:单例模式(Singleton )
意图 保证一个类只有一个实例,并提供一个访问它的全局访问点 ...原创 2019-07-28 22:52:06 · 132 阅读 · 0 评论 -
设计模式之行为模式:模板方法(Template Method)
意图 定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Methond使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 ...原创 2019-08-07 21:27:21 · 245 阅读 · 0 评论