
Java设计模式
设计模式
cc百川
一个不爱程序的程序员
展开
-
java设计模式_状态模式
最近学习到设计模式,现总结个人学习状态模式内容【重点在于根据它的状态改变而改变它的相关行为】。上一篇:Java设计模式-责任链模式设计模式汇总:https://blog.youkuaiyun.com/ljcc122/article/details/104789669文章目录定义优缺点优点缺点实现代码测试定义优缺点优点缺点实现状态模式的实现类的方法,一般返回值,或者是改变实例变量的值。也就是说...原创 2020-04-07 23:19:30 · 248 阅读 · 0 评论 -
Java设计模式-责任链模式
对象由每一个对象对其下家的引用而连接起来形成一条链,即责任链。职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。原创 2020-04-01 22:35:31 · 340 阅读 · 0 评论 -
Java设计模式-备忘录模式
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。原创 2020-03-30 22:04:30 · 273 阅读 · 2 评论 -
Java设计模式-中介者模式
最近学习到设计模式,现总结个人学习中介者模式内容【注重的是通过一个中间类来封装多个类的行为】。上一篇:Java设计模式-观察者模式文章目录定义优缺点优点缺点实现代码测试定义用一个中介对象来封装一系列的对象交互,减少各个对象之间显示的互相引用从而松耦合。优缺点优点减少类间依赖,降低了耦合缺点中介者会膨胀的很大,而且逻辑复杂实现中介者模式角色Mediator是抽象中...原创 2020-03-29 00:00:19 · 235 阅读 · 0 评论 -
Java设计模式-观察者模式
最近学习到设计模式,现总结个人学习观察者模式内容【注重的是自动通知它的依赖对象】。上一篇:Java设计模式-迭代器模式文章目录定义优缺点优点缺点实现代码测试定义指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。优缺点优点观察者和被观察者是抽象耦合的。建立一套...原创 2020-03-28 00:13:35 · 223 阅读 · 0 评论 -
Java设计模式-迭代器模式
最近学习到设计模式,现总结个人学习迭代器模式内容【注重的是不同集合的统一遍历问题】。上一篇:Java设计模式-访问者模式文章目录定义优缺点优点缺点实现代码测试定义提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。(例如测试中的遍历方法,对List和Array的遍历)优缺点优点访问一个聚合对象的内容而无需暴露它的内部表示支持对聚合对象的多种遍历单一责任原则...原创 2020-03-26 22:40:39 · 203 阅读 · 0 评论 -
Java设计模式-访问者模式
最近学习到设计模式,现总结个人学习访问者模式内容【注重的是稳定的数据结构和易变的操作耦合问题】。上一篇:Java设计模式-命令模式文章目录定义优缺点优点缺点实现代码测试定义一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。【简单的说就是下例中的添加的口罩对象没有修改,只是访问者(病毒改变了),而改变了执行结果】。二次理解:您在朋友家做客,您是访...原创 2020-03-25 23:43:30 · 1267 阅读 · 2 评论 -
Java设计模式-命令模式
最近学习到设计模式,现总结个人学习命令模式内容【注重的是命令发送者与命令执行者解耦 】。上一篇:文章目录定义优缺点优点缺点实现代码测试在这里插入图片描述定义将“动作的请求者”从“动作的执行者”对象中解耦。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。优缺点优点解耦发起命令者不要再知道...原创 2020-03-24 23:18:16 · 256 阅读 · 1 评论 -
Java设计模式-享元模式
最近学习到设计模式,现总结个人学习享元模式内容【注重的是共享大量细粒度对象 】。上一篇:Java设计模式-组合模式文章目录定义优缺点优点缺点实现代码测试定义享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。优缺点优点大大减少对象的创建,降低系统的内存,使效率提高。缺点提高了系统的复杂度,需要分离出外部状态【非享元角色】和内部状态,...原创 2020-03-24 21:32:47 · 314 阅读 · 0 评论 -
Java设计模式-外观模式
最近学习到设计模式,现总结个人学习外观模式内容【注重的是外界与子系统间交互】。上一篇:Java设计模式-组合模式文章目录定义优缺点优点缺点实现代码测试定义隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口(即:提供了一个统一的接口, 用来访问子系统中的一群接口. 外观定义了一个高层接口, 让子系统更容易使用)。优缺点优点简化了调用过程,无须了解、深入子系统,防止带来风险...原创 2020-03-23 22:13:16 · 1519 阅读 · 0 评论 -
Java设计模式-组合模式
最近学习到设计模式,现总结个人学习组合模式内容【注重的是整体与部分之间的关系】。上一篇:Java设计模式-装饰者模式文章目录定义优缺点优点:缺点:实现代码测试定义组合模式依据树形结构来组合对象,用来表示部分以及整体层次。优缺点优点:层次清晰。节点自由增加。方便创建出复杂的层次机构,客户端不用理会组合里面的组成细节,容易添加节点或者叶子从而创建出复杂的树形结构。缺点:在使用...原创 2020-03-22 22:29:53 · 227 阅读 · 0 评论 -
Java设计模式-装饰者模式
最近学习到设计模式,现总结个人学习装饰者模式内容【注重的是过程,在不改变原有对象的基础之上,将功能动态附加到对象上】。上一篇:Java设计模式-桥接模式文章目录定义优缺点优点缺点实现代码测试定义装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。通过装饰类,包装原有的类,不改变原有的结构[原有类方法签名完整]的...原创 2020-03-18 23:09:27 · 253 阅读 · 0 评论 -
Java设计模式-桥接模式
最近学习到设计模式,现总结个人学习桥接模式内容【注重的是行为】。上一篇:Java设计模式-策略模式文章目录定义优缺点优点缺点实现代码测试定义将实现与抽象放到两个不同的层次中,使两个层次可以独立维护。优缺点优点分离抽象接口及其实现部分。提高了比继承更好的解决方案。桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。缺点由于聚合关联关系建立在...原创 2020-03-17 22:51:16 · 247 阅读 · 0 评论 -
Java设计模式-策略模式
最近学习到设计模式,现总结个人学习策略模式内容【结果一样关注过程,即注重的是行为】。上一篇:Java设计模式-适配器模式文章目录定义优缺点优点缺点实现代码测试定义在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。定义好各种不同行为【策略不同】,但是其最求目的相对稳定优缺点优点扩展性好,不用添加策略对原有系统无影响。策略可以自由选择。...原创 2020-03-16 21:11:47 · 328 阅读 · 0 评论 -
Java设计模式-适配器模式
最近学习到设计模式,现总结个人学习适配器模式内容。上一篇:Java设计模式-建造者模式文章目录定义优缺点优点缺点代码类适配器实现测试:对象适配器实现测试:缺省适配器实现测试:定义适配器模式将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中,作为两个不兼容接口之间的桥梁。优缺点优点缺点代码类适配器...原创 2020-03-15 22:29:57 · 246 阅读 · 0 评论 -
Java设计模式-建造者模式
最近学习到设计模式,现总结个人学习建造模式内容。上一篇:文章目录定义优缺点优点缺点实现定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示【来自百科】优缺点优点缺点产品需要有共同点,差异性不能太大。实现建造者模式适用于所创建的产品具有较多的共同点,其组成部分相似;如果产品之间的差异性很大,则不适合使用建造者模式以上仅为个人学习,如果错误望指...原创 2020-03-12 21:50:23 · 204 阅读 · 0 评论 -
Java设计模式-代理模式
最近学习到设计模式,现总结个人学习代理模式内容。上一篇:Java设计模式-委派模式。文章目录定义优缺点优点缺点实现CGLIB代理代码测试JDK代理代码测试对比定义为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用优缺点优点(1).职责清晰,不用关心其他非本职责的事务。(2).代理对象可以在客户端和目标对象之间...原创 2020-03-11 23:28:29 · 227 阅读 · 0 评论 -
Java设计模式-委派模式
最近学习到设计模式,现总结个人学习委派模式内容。上一篇:Java设计模式-单列模式文章目录定义优缺点优点缺点实现代码测试定义两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委派/委托模式更关心执行的结果。委派模式不是23种设计模式之一,但它也是常用的设计模式,它是静态代理和策略模式一种特殊的组合。优缺点优点只关心结果,不关心过程【不关心是谁实现的这个功能,只关...原创 2020-03-10 21:36:20 · 410 阅读 · 0 评论 -
Java设计模式-单例模式
最近学习到设计模式,现总结个人学习单列模式内容。上一篇:Java设计模式-原型模式文章目录定义优缺点优点缺点实现懒汉式第一种:常见方式第二种方式:方法上加同步锁第三种方式:方法内加同步锁的方式饿汉式第一种方式:对象加载就创建静态成员变量并初始化单例对象【线程安全】饿汉和懒汉对比枚举单例【推广,推广理由百度一大堆】登记式单例【注册机】当前类的注册用于其他类的登记注册测试定义一个类有且仅有一个...原创 2020-03-09 23:27:39 · 231 阅读 · 0 评论 -
Java设计模式-原型模式
最近学习到设计模式,现总结个人学习原型模式内容。上一篇:Java设计模式-工厂模式文章目录定义优缺点优点缺点实现浅拷贝代码实现测试深拷贝代码实现测试字节码拷贝代码实现测试定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。理解:通过复制的方式创建新的对象。原型模式明显更关心的是结果的一致性。优缺点优点向客户隐藏制造新实例的复杂性【用户对对象的创建过程不可见】在某些环...原创 2020-03-06 00:20:35 · 311 阅读 · 0 评论 -
Java设计模式-工厂模式
最近学习到设计模式,现总结个人学习工厂模式内容。上一篇:Java设计模式-模板模式文章目录定义优缺点优点缺点实现简单工厂第一步:工厂生产汽车第二部:测试,这里作为客户需要知道每一个汽车的名称,但是不关心生产过程。工厂方法第一步:定义接口第二部:厂商生产汽车第三步:测试,用户不需要知道汽车名称,但是需要知道汽车厂商。抽象工厂第一步:定义抽象方法第二部:厂商实现相关方法第三步:测试,工厂统一处理内...原创 2020-03-04 22:42:51 · 610 阅读 · 3 评论 -
Java设计模式-模板模式
最近学习到设计模式,现总结个人学习内容。文章目录定义:优缺点优点缺点实现定义抽象类厂商实现oracle厂商mysql厂商测试定义:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。优缺点优点1、封装不变部分,扩展可变部分。2、提取公共代码,便于维护。3、行为由父类控制,子类实现。缺...原创 2020-03-03 23:23:43 · 206 阅读 · 0 评论 -
Java设计模式汇总
学习设计模式之–总结java设计模式文章目录汇总设计原则单一职责原则开闭原则依赖倒置原则迪米特原则里式替换原则接口原则汇总类型具体设计模式创建型模式工厂模式(3)[关注结果], 单例模式[关注结果],原型模式[关注结果],创建者模式[关注过程]结构型模式代理模式[关注过程],适配器模式,装饰模式,桥接模式,组合模式,外观模式,享元模式行为型模式模板模式,...原创 2020-03-11 15:37:12 · 328 阅读 · 0 评论