随笔分类 -  图解设计模式

摘要:责任链模式:将多个对象组成一条责任链,然后按照它们在责任链上的顺序一个一个地找出到低应该谁来负责处理。 使用责任链模式可以弱化“请求方”和“处理方”之间的关联关系,让双方各自都称为独立复用的组件。 角色: Handler处理者:定了处理请求的接口API,Handler角色知道下一个处理者是谁。如果自 阅读全文
posted @ 2018-09-11 00:51 使用D 阅读(156) 评论(0) 推荐(0) 编辑
摘要:Visitor模式即访问者模式 在数据结构中保存许多元素,我们会对这些元素进行处理,这时“处理”代码放在那里比较好?通常的做法是将它们放在表示数据结构中的类中。但是,如果“处理”有许多中那?这种情况下,没当增加一种处理时,我们就不得不去修改表示数据结构的类。 Visitor模式中将数据结构与处理分离 阅读全文
posted @ 2018-09-09 23:46 使用D 阅读(474) 评论(0) 推荐(0) 编辑
摘要:装饰者模式:像不断地在对象添加装饰的设计模式称为Decorator模式,Decorator指装饰物。 角色: Component组件:增加功能的核心角色。本示例中,装饰前的蛋糕就是Component角色,Component角色只定义了API接口。 ConcreteComponent具体的组件:实现了 阅读全文
posted @ 2018-09-09 23:10 使用D 阅读(217) 评论(0) 推荐(0) 编辑
摘要:Strategy(算法)模式可以整体的替换算法的实现部分。 重点说明: 使用委托这种弱关联关系可以很方便的整体替换算法。 角色: Strategy策略:该角色负责决定实现策略所需要的接口api。 ConcreteStrategy具体策略:该角色负责实现Strategy角色接口api。即负责实现具体的 阅读全文
posted @ 2018-09-06 23:35 使用D 阅读(464) 评论(0) 推荐(0) 编辑
摘要:Bridge桥连接模式的作用是将两样东西链接起来,它们分别是类的功能层次结构和类的实现层次结构。 类的功能层次结构 当有一个Something类,要增加它的功能时,可以创建SomethingGood类同时继承Something类,这样就构成了一个小的类的层次结构。 父类具有基础的功能 在子类中增加新 阅读全文
posted @ 2018-09-06 22:28 使用D 阅读(180) 评论(0) 推荐(0) 编辑
摘要:抽象工厂的工作是将“抽象零件”组装成“抽象产品”。 我们不关心零件的具体实现,而是只关心接口API。我们仅适用该接口API将零件组装成为产品。 角色: AbstractProduct抽象产品:负责定义AbstractFactory角色所生成的抽象零件和产品的接口。在示例中,友Link、Tray、Pa 阅读全文
posted @ 2018-09-03 23:48 使用D 阅读(512) 评论(0) 推荐(0) 编辑
摘要:用于组装具有复杂结构的实例叫做Builder模式。 抽象类Builder中定义了组装需要用的所用方法。 抽象类的每种具体实现(TextBuilder于HTMLBuilder)中定义了各自的组装时需要的个性化方法。 Director组装类中定义了组装的顺序。 角色: Builder建造者:负责定义用于 阅读全文
posted @ 2018-09-03 22:07 使用D 阅读(299) 评论(0) 推荐(0) 编辑
摘要:Java开发中一般情况下通过使用new 关键字创建对象,但是有时也会在“不指定类名的前提下生成实例”的需求: 对象种类繁多,无法将它们整合到一个类中时 需要处理的对象太多,如果将它们分别作为一个类,需要编写的类文件太多。 难以根据类生成实例时 生成实例的过程太复杂,很难根据类来生成实例。 想解耦框架 阅读全文
posted @ 2018-09-03 00:22 使用D 阅读(163) 评论(0) 推荐(0) 编辑
摘要:Singleton指只有一个元素的集合。 想要在任何情况下都绝对只有一个实例。 想在程序上表现出“只存在一个实例” 角色: Singleton:在Singleton模式只有这个角色。在Singleton角色中有一个返回唯一实例的static方法。该方法总是返回同一实例。 代码: public cla 阅读全文
posted @ 2018-09-02 23:41 使用D 阅读(113) 评论(0) 推荐(0) 编辑
摘要:用Template Method模式构建生成实例的工厂。 在factory method模式中,父类决定实例的生成方式,但是不决定所要生成的具体类,具体的处理交给子类负责。 角色: Product产品:它定义了在Factory Method模式中的生成的那些实例所持有的接口,由Product类扮演。 阅读全文
posted @ 2018-08-30 22:31 使用D 阅读(130) 评论(0) 推荐(0) 编辑
摘要:父类中定义处理流程,子类中实现具体处理的模式称为Template Method模式 优点: 可以保持逻辑处理通用化(父类中定义处理流程) 父类与子类之间协作(子类实现父类的抽象方法) 父类与子类保持一致性(子类继承父类) 延伸: 子类可以使用父类的方法 可以通过子类增加方法以实现新功能 子类重写父类 阅读全文
posted @ 2018-08-29 23:47 使用D 阅读(141) 评论(0) 推荐(0) 编辑
摘要:使用Adapter模式可以在完全不改变原有代码的前提下使现有代码适配于新的接口API。 Adapter模式有以下两种方式: 类适配器模式(使用继承方式的适配器) 对象适配器模式(使用委托的适配器) Adapter涉及到的角色 Target对象:该角色定义了所需的方法(Print接口) Client请 阅读全文
posted @ 2018-08-29 00:07 使用D 阅读(210) 评论(0) 推荐(0) 编辑
摘要:使用抽象类和接口,弱化类之间的耦合,使类可以更容易组件化 不使用具体类编程,要优先使用抽象类和接口编程 角色划分: Iterator迭代器接口,定义遍历元素的接口,hasNext判断是否有下一个、next获得下一个值 ConcreteIterator:迭代器具体的实现类,实现了hasNext、nex 阅读全文
posted @ 2018-08-27 23:31 使用D 阅读(197) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示