设计模式
文章平均质量分 92
娟宝宝萌萌哒
https://github.com/hanjg
展开
-
适配器模式——java设计模式(八)
简介结构和实现类适配器对象适配器实例缺省适配器双向适配器优缺点和适用环境优点缺点适用环境jdk中的应用简介 适配器模式(Adapter Pattern):将一个类的接口转换成希望的另一个接口,让那些接口不兼容的类可以一起工作。如果需要复用已有的类,但是接口不兼容,不能或者不愿修改原有的类或者需要的类。可以使用适配器,用户在调用适...转载 2018-05-10 12:34:40 · 560 阅读 · 0 评论 -
命令模式——java设计模式(十六)
简介结构和实现实例扩展命令队列记录请求日志撤销操作宏命令优缺点和适用环境jdk中的应用简介 命令模式(Command Pattern):将请求封装为对象,从而可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,支持可撤销的操作。将发送者的请求封装在命令对象中,再通过命令对象调用接受者的方法。也称动作模式和事务模式。允许请求的一...转载 2018-05-18 23:14:36 · 328 阅读 · 0 评论 -
解释器模式——java设计模式(十七)
简介结构和实现实例优缺点和适用范围jdk中的应用简介 解释器模式(Interpreter Pattern):给定一个语言,定义文法的一种表示,并定义一个解释器,使用该表示解释语言中的句子。为了更好的描述特定的问题,可以创建新的语言,拥有自己的表达式和结构,即文法规则。可使用解释器模式设计语言。文法规则:符号“::=”表示“定义为”,“|”表示或,“...转载 2018-05-18 23:16:21 · 821 阅读 · 0 评论 -
迭代器模式——java设计模式(十八)
简介结构和实现实例内部类实现迭代器优缺点和适用范围jdk中的应用简介 迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。迭代器将遍历功能从聚合对象中分离,更加方便的操作对象并且不用暴露内部结构。又称游标模式。结构和实现角色包括: 抽象迭代器:声明访问和遍历元素...转载 2018-05-18 23:17:32 · 732 阅读 · 0 评论 -
中介者模式——java设计模式(十九)
简介结构和实现实例扩展中介者和同事类优缺点和适用范围jdk中的应用简介 中介者模式(Mediator Pattern):定义一个对象封装一系列对象的交互,使各对象之间无需显示的相互引用,从而使得其耦合松散,用户可以独立的改变他们之间的交互。系统之间引用关系复杂,耦合过度,需要将两两之间的引用转化为对象和中介者的引用,将系统的网络结构转化成星型结构...转载 2018-05-18 23:19:15 · 589 阅读 · 0 评论 -
备忘录模式——java设计模式(二十)
简介结构和实现实例多次撤销优缺点和适用范围jdk中的应用简介 备忘录模式(Memento Pattern):在不破坏封装性的前提下捕获一个对象内部的状态,并在对象之外保存这个状态,以便对象以后恢复到这一状态。备忘录模式可以使系统恢复到某一历史时期的状态,又称标记模式。结构和实现角色包括: 源发器:普通类,可以创建备忘录,也可以使...转载 2018-05-18 23:20:30 · 2946 阅读 · 1 评论 -
观察者模式——java设计模式(二十一)
简介结构和实现实例优缺点和适用范围jdk中的应用简介 观察者模式(Observer Pattern):定义对象之间一对多的依赖关系,当一个对象的状态发生改变时,相关的依赖对象都得到通知并自动更新。解决多个对象之间的联动问题,这些观察者之间无需直接关系。又称发布-订阅模式、模型-视图模式、源-监听器模式、从属者模式。结构和实现角色包括:...转载 2018-05-18 23:21:35 · 341 阅读 · 0 评论 -
状态模式——java设计模式(二十二)
简介结构和实现实例状态类状态转换环境类状态转换共享状态优缺点和适用范围jdk中的应用简介 状态模式(State Pattern):允许一个对象在内部状态改变时改变行为,看起来似乎修改了类。解决复杂对象的状态转换以及不同状态下行为的封装问题。状态模式可以将一个对象的状态提取出来封装到一个类中,使得对象状态变化更加灵活,并且客户端可以不用关心对...转载 2018-05-18 23:22:25 · 983 阅读 · 0 评论 -
策略模式——java设计模式(二十三)
简介结构和实现实例优缺点和适用范围jdk中的应用简介 策略模式(Strategy Pattern):定义一系列算法并将每一个算法封装起来,让他们可以互相替换,独立于客户而变化。用于算法的自由切换和扩展,需要使用策略模式实现算法的定义和使用分离,从而替换传统的硬编码方式。又称政策模式。硬编码,增加算法需要修改源码,并且代码复杂,维护困难。 算法集...转载 2018-05-18 23:23:58 · 1025 阅读 · 0 评论 -
模板方法模式——java设计模式(二十四)
简介结构和实现实例钩子方法使用优缺点和适用范围jdk中的应用简介 模板方法模式(Template Method Pattern):定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。将一系列复杂流程封装在基本方法中,并在模板方法中安排这些基本方法的逻辑,子类可以重写基本方法完成功能的定...转载 2018-05-18 23:25:22 · 461 阅读 · 0 评论 -
原型模式——java设计模式(六)
简介结构和实现浅克隆深克隆实例原型管理器优缺点和适用范围jdk中的应用简介 原型模式(Prototype Pattern):使用原型实例指定待创建对象的类型,并通过复制这个原型来创建新的对象。当需要使用相同或者相似对象时,将原型类自身作为工厂,复制新的对象。结构和实现角色包括: 抽象原型类:声明克隆方法的接口,可以使抽象类...转载 2018-05-06 17:30:52 · 364 阅读 · 0 评论 -
单例模式——java设计模式(七)
简介结构和实现饿汉式单例懒汉式单例静态内部类单例枚举单例实例优缺点和适用范围jdk中的应用简介 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。某些类,如id生成器等,只能有一个,需要使用单例模式。单例模式的要点:一个类只能有一个实例、类必须自行创建这个实例、类必须自行向系统...原创 2018-05-06 18:23:58 · 283 阅读 · 0 评论 -
访问者模式——java设计模式(二十五)
简介结构和实现实例联用组合模式优缺点和适用范围jdk中的应用简介 访问者模式(Visitor Pattern):表示一个用于作用于某对象结构中的各个元素的操作。让用户在不改变各元素的类的前提下定义作用于这些元素的新操作。为了以不同的方式操作复杂对象结构中的不同类型元素。结构和实现角色包括: 抽象访问者:为对象结构中的每一个具体元素...转载 2018-05-19 14:16:04 · 1024 阅读 · 0 评论 -
职责链模式——java设计模式(十五)
简介结构和实现实例纯与不纯的职责链模式优缺点和使用环境jdk中的应用简介 职责链模式(Chain of Responsibility Pattern):避免将一个请求的发送者与接受者耦合在一起,让多个对象都有机会处理请求。将接收请求的对象连接成一条链,并且沿着链传播请求,直到有一个对象能够处理为止。解耦请求的发送者和处理者,职责链可以使直线、环、树...转载 2018-05-18 23:11:34 · 902 阅读 · 1 评论 -
建造者模式——java设计模式(五)
简介结构和实现实例省略指挥者引入钩子方法优缺点和适用范围jdk中的应用简介 建造者模式(Builder Pattern):将一个复杂对象的构建和表示分离,使得同样的构造过程可以创建不同的表示。对于某些复杂对象,用户无须知道具体的构造细节,只需要指定类型即可。这时可以将对象本身和组装过程分开,并且将内部构成和组装方式隐藏,提供用户调用。建造者模式...转载 2018-05-05 18:45:45 · 396 阅读 · 1 评论 -
桥接模式——java设计模式(九)
简介结构和实现实例桥接模式结合适配器模式优缺点和适用环境jdk中的应用简介 桥接模式(Bridge Pattern):将抽象部分和实现部分解耦,使两者能够独立变化。如果某个类存在两个个独立变化的维度,使用桥接可以将传统的多层继承转化为抽象关联,解耦两个维度的变化,使得系统可以任意扩充一个维度而不影响另一个维度。关联关系作为连接两个维度的桥。...转载 2018-05-10 12:36:05 · 306 阅读 · 0 评论 -
组合模式——java设计模式(十)
简介结构和实现透明组合模式安全组合模式实例优缺点和适用环境jdk中的应用简介 组合模式(Composite Pattern):组合多个对象形成树形结构,以表示具有整体部分关系的层次结构,使客户端可以统一的对待单个对象和组合对象。需要客户端一致的处理叶子构件和容器构件,可以定义抽象构件,代表叶子构件和容器构件,并在容器构件中关联抽象构件,形成树...转载 2018-05-10 12:36:58 · 1402 阅读 · 0 评论 -
装饰模式——java设计模式(十一)
简介结构和实现透明装饰模式半透明装饰模式实例优缺点和适用范围jdk中的应用简介 装饰模式(Decorator Pattern):动态的给一个对象增加额外的职责,提供一种比使用子类更加灵活的解决方法。需要在不改变一个对象的基础上增加额外的行为,可以使用关联代替继承,在装饰类中包含原有类和方法,并增加新的方法,从而动态增减对象的职责。结...转载 2018-05-10 12:37:57 · 247 阅读 · 0 评论 -
外观模式——java设计模式(十二)
简介结构与实现实例抽象外观类优缺点和适用环境jdk中的应用简介 外观模式(Facade Pattern):定义一个高层接口,为子系统中的一组接口提供一个统一的入口,使得这一子系统更加容易使用。客户端与子系统之间的交互复杂,需要外观模式提供统一的接口,简化类之间的交互。又称门面模式,是迪米特法则的一种实现。结构与实现角色包括: 外观...转载 2018-05-10 12:38:44 · 1148 阅读 · 0 评论 -
享元模式——java设计模式(十三)
简介结构和实现实例单纯享元模式复合享元模式优缺点和适用环境jdk中的应用简介 享元模式(Flyweight Pattern):运用共享技术有效的支持大量细粒度对象的复用。当系统中存在大量相同或者相似的细粒度对象时,可以共享这些对象。将具有相同内部状态的对象存储在享元池中,取出时注入不同的外部状态则可以得到相似的对象。 内部状态:存储在享元内部。...转载 2018-05-10 12:39:25 · 421 阅读 · 0 评论 -
代理模式——java设计模式(十四)
简介结构和实现实例远程代理虚拟代理动态代理优缺点和适用环境简介 代理模式(Proxy Pattern):给某一个对象提供一个代理或者占位符,并由代理对象控制对原对象的访问。无法直接访问某个对象,或者访问某个对象有困难时,可以使用一个代理对象来间接访问。代理模式分为多种: 远程代理:为不同地址空间的对象提供本地的代理对象。虚拟代理:创建的对象...转载 2018-05-10 12:39:59 · 428 阅读 · 0 评论 -
常见的6种类的关系
简介依赖(Dependency)表现关联(Association)表现其他关联聚合(Aggregation)和组合(Composition)表现泛化(Generalization)表现实现(Realization)表现参考简介类的常见关系有六种,从弱到强为:依赖<关联<聚合<组合<泛化=实现。...转载 2018-04-26 14:32:32 · 5891 阅读 · 0 评论 -
面向对象设计原则——java设计模式(一)
设计原则的目的单一职责原则实例开闭原则里氏替换原则依赖倒转原则关系实例接口隔离原则实例合成复用原则实例迪米特法则实例设计原则的目的确保可维护性。软件能够被理解、修改、扩展。确保可复用性。实现设计方案或者源代码的复用。单一职责原则 一个对象应该只包含单一职责,并且该职责被完整的封装在一个类中。单一...转载 2018-05-04 13:57:01 · 706 阅读 · 0 评论 -
EA12创建九种常见的UML图
UMLEA12九种UML图用例图(UseCase Diagrams)类图(Class Diagrams)对象图(Object Diagrams)构件图(Component Diagrams)部署图(Deployment Diagrams)时序图(Sequence Diagrams)协作图(Collaboration Diagrams)状态图(Statechart Diag...原创 2018-04-26 19:33:21 · 11206 阅读 · 0 评论 -
简单工厂模式——java设计模式(二)
简介结构和实现实例简单工厂简化优缺点和适用环境jdk中的应用简介 简单工厂模式(Simple Factory Pattern):定义一个工厂类,可以根据参数返回不同的类的实例,被创建的类的实例通常都有相同的父类。简单工厂模式是根据参数创建实例的模式,创建方法通常是静态方法,也称为静态工厂模式。结构和实现角色包括: 工厂:提供静态...转载 2018-05-04 16:10:24 · 863 阅读 · 0 评论 -
工厂方法模式——java设计模式(三)
简介结构和实现实例工厂方法重载工厂方法隐藏优缺点和和适用环境jdk中的应用简介 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化,即让一个类的实例化延迟到子类。工厂方法模式引入抽象工厂类,由其子类创建实例,可以添加产品和对应的具体工厂类,在不修改工厂类源代码的情况下引入新的产...转载 2018-05-05 09:56:12 · 1259 阅读 · 0 评论 -
抽象工厂模式——java设计模式(四)
简介结构和实现实例开闭原则倾斜性优缺点和适用环境jdk中的应用简介 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或者相互依赖对象的接口,而无须指定它们具体的类。工厂方法模式中存在大量的工厂类,会增加系统的开销。需要一个工厂可以创建多个产品对象。抽象工厂模式面向多个产品等级结构(产品继承结构,抽象产品父类...转载 2018-05-05 14:16:15 · 388 阅读 · 0 评论 -
24种java设计模式总结和目录
简介原则分类创建型模式结构型模式行为型模式类图参考简介设计模式是在特定环境下,为解决某一类通用软件设计问题提供的一套定制的解决方案,描述了对象和类之间的相互作用。优点: 提供标准以供开发。方便交流,降低对复杂系统理解的难度。更加简单方便的复用成功的设计。避免不可重用的方案。使设计方案更加灵活,易于修改。设计模式通常满足多种面向对象的设计原则。...原创 2018-05-19 14:20:31 · 1516 阅读 · 0 评论