Java设计模式
js_tengzi
这个作者很懒,什么都没留下…
展开
-
Java设计模式之面向对象设计原则
Java设计模式之面向对象设计原则面向对象设计原则1、单一职责原则2、开闭原则3、里氏代换原则4、依赖倒转原则5、接口隔离原则6、合成复用原则7、迪米特法则小结面向对象设计原则面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则,但并不是强制性的。面向对象设计原则也是学习设计模式的基础,每一个设计模式都符合某一个或多个面向对象设计原...转载 2019-04-10 10:41:12 · 349 阅读 · 0 评论 -
Java设计模式之解释器模式
Java设计模式之解释器模式前言正文一、定义二、文法规则和抽象语法树三、结构四、实现五、解释器模式优缺点与适用环境优点缺点适用环境前言解释器模式用于描述如何构成一个简单的语言解释器,主要应用于使用面向对象语言开发的解释器的设计。当需要开发一个新的语言时可以考虑使用解释器模式。正文在某些情况下,为了更好地描述某些特定类型的问题可以创建一种新的语言,这种语言拥有自己的表达式和结构,即文法规则,...转载 2019-04-16 16:18:53 · 623 阅读 · 0 评论 -
Java设计模式之迭代器模式
Java设计模式之迭代器模式前言正文一、定义二、结构三、实现四、使用内部类实现迭代器五、Java内置迭代器六、迭代器模式优缺点与适用环境优点缺点适用环境前言迭代器用于对一个聚合对象进行遍历。通过引入迭代器可以将数据的遍历功能从聚合对象中分离出来,聚合对象只负责存储数据,而遍历数据由迭代器完成,简化了聚合对象的设计,更符合单一职责原则的要求。正文在软件系统中,聚合对象拥有两个职责:一是存储数...转载 2019-04-16 17:18:15 · 175 阅读 · 0 评论 -
Java设计模式之中介模式
Java设计模式之中介模式前言正文一、定义二、结构三、实现四、扩展中介者与同事类五、中介者模式优缺点与适用环境优点缺点适用环境前言对于那些对象之间存在复杂交互关心的系统,中介者模式提供了 一种简化复杂交互的解决方案,它通过引入中介者将原本对象之间的两两交互转化为每个对象与中介者之间的交互,中介者可以对对象之间的通信进行控制与协调,降低原有系统的耦合度,使得系统更加灵活,也更易于扩展。正文如...转载 2019-04-16 18:59:24 · 99 阅读 · 0 评论 -
Java设计模式之备忘录模式
Java设计模式之备忘录模式前言正文一、定义二、结构三、实现四、实现多次撤销五、备忘录优缺点与适用环境优点缺点适用环境前言备忘录模式是软件系统的“月光宝盒”,它提供了一种对象状态的撤销实现机制,当系统中的某个对象需要恢复到某一历史状态时可以使用备忘录模式进行设计。正文一、定义定义如下:备忘录模式: 在不破坏封装的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以...转载 2019-04-16 20:17:29 · 216 阅读 · 0 评论 -
Java设计模式之享元模式
Java设计模式之享元模式前言正文一、享元池二、享元的内部状态和外部状态三、定义四、结构五、实现六、单纯享元模式与复合享元模式1、单纯享元模式2、复合享元模式七、享元模式与String类八、享元模式优缺点与适用环境优点缺点适用环境前言当系统中存在大量相同或者相似的对象时,享元模式是一种值得考虑的解决方案,它通过 共享技术实现相同或相似的细粒度对象的复用,从而节约了内存空间、提高了系统性能。在享...转载 2019-04-13 20:38:25 · 283 阅读 · 0 评论 -
Java设计模式之观察者模式
Java设计模式之观察者模式前言正文一、定义二、结构三、实现四、JDK对观察者模式的支持1、Observer接口2、Observable类五、观察者模式与Java事件处理六、观察者模式与MVC七、观察者模式优缺点与适用环境优点缺点适用环境前言观察者模式用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在观察者模式中发生改变的对象称为观察目标,而...转载 2019-04-16 21:24:31 · 95 阅读 · 0 评论 -
Java设计模式之状态模式
Java设计模式之状态模式前言正文一、定义二、结构三、实现四、共享状态五、使用环境类实现状态转换六、状态模式优缺点与适用环境优点缺点适用环境前言状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中的某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。正文状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,...转载 2019-04-17 09:41:20 · 130 阅读 · 0 评论 -
Java设计模式之策略模式
Java设计模式之策略模式前言正文一、定义二、结构三、实现四、Java SE中的布局管理五、策略模式优缺点与适用环境优点缺点适用环境前言策略模式对应于解决某一问题的一个算法族,允许用户从该算法族中任选一个算法解决某一问题,同时可以方便地更换算法或者增加新的算法。策略模式实现了算法定义和算法使用的分离,它通过继承和多态的机制实现对算法族的使用和管理,是一个简单、实用的设计模式。正文一、定义...转载 2019-04-17 10:50:21 · 121 阅读 · 0 评论 -
Java设计模式之模板方法模式
Java设计模式之模板方法模式前言正文一、定义二、结构三、实现1、模板方法2、基本方法两类钩子方法四、模板方法模式优缺点与适用环境优点缺点适用环境前言模板方法模式是结构最简单的行为型设计模式,它是一种类型为模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式可以将一些复杂的流程的实现步骤封装在一系列基本方法中,在抽象父类中提供了一个称为模板方法的方法来定义这些基本方法的执行次序...转载 2019-04-17 12:06:13 · 147 阅读 · 0 评论 -
Java设计模式之访问者模式
Java设计模式之访问者模式前言正文一、定义二、结构三、实现四、访问者模式与组合模式联用五、访问者模式优缺点与适用环境优点缺点适用环境前言访问者模式包括访问者和被访问者元素两个主要组成部分,这些被访问的元素具有不同的类型,且不同的访问者可以对其施加不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这这些不同类型的元素增加新的操作。正文一、定义定义如下:访...转载 2019-04-17 16:31:01 · 141 阅读 · 0 评论 -
Java设计模式之代理模式
Java设计模式之代理模式前言正文一、定义二、结构三、实现四、远程代理五、虚拟代理六、Java动态代理1、Proxy类2、InvocationHandler接口七、代理模式优缺点与适用环境优点缺点适用环境前言代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。...转载 2019-04-15 13:34:18 · 106 阅读 · 0 评论 -
对原型模式的思考01
原型模式中,我们可以利用序列化与反序列化来实现深克隆机制,利用这种方式得到的克隆对象是否与原对象有着不同的内存地址?来,我们验证一下!原创 2019-05-12 12:04:38 · 100 阅读 · 0 评论 -
Java设计模式之命令模式
Java设计模式之命令模式前言正文一、定义二、结构三、实现四、实现命令队列五、记录请求日志六、宏命令七、命令模式优缺点与适用环境优点缺点适用环境前言命令模式是常用的行为型设计模式之一,它将请求发送者与请求接收者解耦,请求发送者通过命令对象来间接引用接收者,使得系统具有更好的灵活性,可以在不修改现有系统源代码的情况下让相同的发送者对应不同的接收者。正文命令模式可以将请求发送者和接收者完全解耦...转载 2019-04-16 11:18:11 · 310 阅读 · 0 评论 -
Java设计模式之外观模式
Java设计模式之外观模式前言正文一、定义二、实现三、抽象外观类四、外观模式优缺点与适用环境优点缺点适用环境前言外观哦是是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,使子系统与客户端的耦合度降低,且客户端调用非常方便。正文在外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户类与...转载 2019-04-12 18:24:37 · 164 阅读 · 0 评论 -
Java设计模式之简单工厂模式
Java设计模式之简单工厂模式前言正文定义前言在GoF设计模式中包含5种创建型模式,通常将一种非GoF设计模式——简单工厂模式作为学习其他工厂模式的基础,这6种设计模式的名称、定义整理成表格如下:模式名称定义简单工厂模式(Simple Factory Pattern)定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类工厂方法模式...转载 2019-04-10 15:52:51 · 88 阅读 · 0 评论 -
Java设计模式之工厂方法模式
Java设计模式之工厂方法模式前言正文1、定义2、结构3、工厂方法的重载4、工厂方法的隐藏5、工厂方法模式的优缺点与适用环境优点缺点适用环境前言工厂方法模式是简单工厂模式的延伸,它继承了简单工厂模式的优点,同时还弥补了简单工厂模式的缺陷,更好地符合开闭原则的要求,在增加新的具体产品对象时不需要对已有系统做任何修改。正文在工厂方法模式中不再提供一个统一的工厂类来创建所有的产品对象,而是针对不...转载 2019-04-10 17:16:38 · 106 阅读 · 0 评论 -
Java设计模式之抽象工厂模式
Java设计模式之抽象工厂模式前言产品等级结构产品族正文1、定义2、结构3、开闭原则的倾斜性4、抽象工厂模式优缺点与适用环境优点缺点适用环境前言抽象工厂模式是常用的创建型设计模式之一,它比工厂方法模式的抽象程度更高。在工厂方法模式中每一个具体工厂只需要生产一种具体产品,但是在抽象工厂模式中一个具体工厂可以生产一组相关的具体产品,这样的一组产品称为产品族,产品族中的每一个产品都分属于某一个产品继...转载 2019-04-10 18:28:30 · 130 阅读 · 0 评论 -
Java设计模式之建造者模式
Java设计模式之建造者模式前言正文定义结构指挥者类的深入讨论1、省略Director2、钩子方法的引入建造者模式的优缺点与适用环境优点缺点适用环境前言建造者模式是一种较为复杂的创建型模式,它将客户端与包含多个组成部分的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。建造者模式关注如何一步步地创建一个复杂对象,不同的具体建造者定义了不同的...转载 2019-04-10 19:34:12 · 165 阅读 · 0 评论 -
Java设计模式之原型模式
Java设计模式之原型模式前言正文一、定义二、工作原理三、结构四、浅克隆与深克隆1、浅克隆2、深克隆五、原型模式实现1、通用实现方法2、Java语言中的clone()方法和Cloneable接口3、深克隆解决方案4、原型管理器六、原型模式优缺点与适用环境优点缺点适用环境前言原型模式是一种特殊的创建型模式,它通过复制一个已有对象来获取更多相同或相似的对象。原型模式可以提高相同类型对象的创建效率,...转载 2019-04-11 11:53:31 · 122 阅读 · 0 评论 -
Java设计模式之单例模式
Java设计模式之单例模式前言正文一、定义二、要点三、单例模式的实现四、饿汉式单例与懒汉式单例1、饿汉式单例类2、懒汉式单例类与双重检查锁定3、饿汉式单例类与懒汉式单例类的比较4、使用静态内部类实现单例模式五、单例模式优缺点与适用环境优点缺点适用环境前言单例 模式是结构最简单的设计模式,在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以确保系统中的一个类只有一个实例而且该实例易于...转载 2019-04-11 15:39:18 · 279 阅读 · 0 评论 -
Java设计模式之适配器模式
Java设计模式之适配器模式前言正文一、定义二、分类三、结构四、缺省适配器模式五、双向适配器六、适配器模式优缺点与适用环境优点类适配器模式:对象适配器模式:缺点类适配器模式:对象适配器模式:适用环境前言适配器模式是一种使用频率非常高的结构型设计模式,如果系统中存在不兼容的接口,可以通过引入一个适配器来使原本因为接口不兼容而不能在一起工作的两个类能够协同工作。在GoF设计模式中包含7种结构型模...转载 2019-04-11 17:22:40 · 138 阅读 · 0 评论 -
Java设计模式之桥接模式
Java设计模式之桥接模式前言正文一、定义二、结构三、实现四、桥接模式与适配器模式的联用五、桥接模式优缺点与适用环境优点缺点适用环境前言桥接模式是一种很实用的结构型设计模式,如果系统中的某个类存在两个独立变化的维度,通过桥接模式可以将这两个维度分离出来,使两者可以独立扩展。桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联来取代传统的多层继承,将类之间的静态继承关系转换为动态的对象组合...转载 2019-04-11 21:33:48 · 267 阅读 · 1 评论 -
Java设计模式之组合模式
Java设计模式之组合模式前言正文一、定义二、结构三、实现四、透明组合模式与安全组合模式1、透明组合模式2、安全组合模式五、组合模式优缺点与适用环境优点缺点适用环境前言组合模式关注那些包含叶子构件和容器构件的结构以及它们的组织形式,在叶子构件中不包含成员对象,而容器构件中可以包含成员对象,这些对象通过递归组合可构成一个树形结构。组合模式使用面向对象的方式来处理树形结构,它为叶子构件和容器构件提...转载 2019-04-12 12:55:24 · 139 阅读 · 0 评论 -
Java设计模式之职责链模式
Java设计模式之职责链模式前言正文一、定义二、结构三、实现四、纯与不纯的职责链模式1、纯的职责链模式2、不纯的职责链模式五、职责链模式优缺点与适用环境优点缺点适用环境前言在系统中如果存在多个对象可以处理同一请求,则可以通过职责链模式将这些处理请求的对象连成一条链,让请求沿着该链进行传递。如果链上的对象可以处理该请求则进行处理,否则将请求转发给下家来处理。职责链模式可以将请求的发送者和接收者解...转载 2019-04-15 19:05:36 · 142 阅读 · 0 评论 -
Java设计模式之概述
关于设计模式的一些总结01定义基本要素分类1、根据目的分类2、根据范围分类GoF设计模式简介合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导...转载 2019-04-09 11:12:00 · 150 阅读 · 0 评论 -
Java设计模式之装饰模式
Java设计模式之装饰模式前言正文一、定义二、结构三、实现四、透明装饰模式与半透明装饰模式1、透明装饰模式2、半透明装饰模式五、装饰模式优缺点与适用环境优点缺点适用环境前言装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。装饰模式降低了系统的耦合度,可以动态增加或删除对象的职责,并使需要装饰的具体构件类和用于装饰的具...转载 2019-04-12 16:34:27 · 279 阅读 · 0 评论 -
单例模式的实现及其演变
单例模式的实现及其演变前言单例模式的结构演变1、饿汉式单例2、懒汉式单例类与双重检查锁定3、使用静态内部类实现单例模式前言单例模式是结构最简单的设计模式,在它的核心结构中只包含一个被称为单例类的特殊类。作为一种目标明确、结构简单、理解容易的设计模式,在软件开发中的使用频率相当高,在很多应用软件和框架中都得以广泛应用。单例模式的结构单例模式的结构图如下:其Java代码实现如下:pub...原创 2019-05-12 23:55:35 · 309 阅读 · 0 评论