创建型模式 1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的套餐和肯德基的套餐都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“两个B套餐”就行了。麦当劳和肯德基就是B套餐的Abstract Factory, B套餐里含有汉堡, 鸡翅和饮料.
转载
2016-12-02 11:45:00
89阅读
2评论
设计模式的经典名著——Design Patterns: Elements of Reusable Object-Oriented Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者Erich Gamma、Richard Helm、Ralph Johnson,以及John ...
转载
2015-09-11 10:35:00
129阅读
2评论
1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类
原创
2022-03-23 18:32:05
143阅读
咱们java开发人员联想到创建对象,的确,创建型模式就是用来创建对象的模式,抽象了实例化的过程,帮助一个系统独立于其关联对象的创建、组合和表示方式。其中创建型模式有如下几种:Factory Method(工厂方法)Abstract Factory(抽象工厂)Builder(建造者)Prototype(Singleton(单例)结构型顾名思义,咱们java开发人员联想到的应该就是类和对象的结构,它采
原创
2020-12-13 21:38:10
306阅读
常用的设计模式可以概括为23种模式,按照特点有将其分为三大类型:创建型咱们java开
原创
2023-04-13 06:43:12
83阅读
23种设计模式速记:工厂方法模式(Factory Method)定义一个创建对象的接口,但由子类决定需要实
原创
2022-07-09 00:02:53
396阅读
行为型模式 关注系统中对象之间的交互,研究系统在运行时对象之间的相互通讯和协作,进一步明确对象职责。 模板方法模式(template method) 介绍: 模板方法定义了一个操作中的算法骨架,将某些步骤(钩子方法)延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤 核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定
原创
2021-04-21 22:44:57
411阅读
创建型模式用于如何更好、更高效、更容易的创建对象单例模式懒汉式:(线程安全,调用效率高,不能延迟加载)java.lang.RunTime饿汉式:(调用效率不高,可以延迟加载)java.awt.Toolkit.getDefaultToolkit()双重检测琐式(java volatile关键字修改,由于jvm底层内部模型原因,偶尔会出问题,不建立使用)静态内部类式(线程安全,调用效率高,可以延迟加载
原创
2021-04-21 22:45:42
187阅读
一、核心作用:实现了创建者和调用者分离二、面向对象的基本原则:1、O
原创
2021-12-24 15:46:09
110阅读
一、核心作用:解决系统中对象的状态转换以及不同状态下行为的封装二、常见应用场景:银行系统中的账号状态管理OA系统中的公文状态管理酒店管理系统,房间状态管理三、状态模式的实现:Context 环境类:环境类中维护着State对象,定义了当前的状态State状态接口:状态接口ConcreteState具体状态类:每个类封装了一个状态行为四、代码示例:一、状态接口代...
原创
2021-12-25 17:57:43
150阅读
一、核心作用:策略模式对应于解决某一个问题的算法族,允许用户从该算法中任选一个算法解决某个问题,同时可以方便的更换算法或者增加新的算法客户端决定调用哪个算法分离算法,选择实现二、常见应用场景:1、HttpServlet2、GUI编程布局管理三、命令模式的实现:公共接口(Strategy):定义所支持的算法的公共接口具体实现(ConcreteStrategy):封装了具体的算...
原创
2021-12-25 17:57:44
118阅读
一、核心作用:动态的为一个对象增加新功能装饰模式是一种代理继承是技术,无需通过继承增加子类就可以扩展对象使用对象关联关系代理继承关系,更加灵活,避免类型体系快速膨胀装饰模式降低系统的耦合度,可以动态的增加或删除对象使需要装饰的具体构建类和具体修饰类可以独立变化,以便增加新的具体构建类和具体装饰类二、常见应用场景:1、IO输入流/IO输出流2、Servlet API reques...
原创
2021-12-25 18:01:43
210阅读
一、核心作用:外观模式提供一个统一的接口,用来访问系统中的一群接口,这个接口使得一群接口易于管理为子系统提供以恶入口,封装子系统的复杂性,便于客户调用外观模式定义了一个高层的接口,让子系统更容易的使用违背了开闭原则符合迪米特原则(Low of Demeter 最少知道原则):一个软件实体应当尽可能少的与其他实体发生相互作用二、常见应用场景:1、JDBC工具类三、代码示例:...
原创
2021-12-25 18:01:43
120阅读
一、核心作用间接对目标对象进行访问可以详细控制某个对象的方法,对目标
原创
2021-12-24 15:50:00
93阅读
一、核心作用:给定一个语言,定义他的文本表示方式,定义一个解释器,解释器使用表示解释语言的句子二、常见应用场景:1、正则表达式2、运算符表达式三、命令模式的实现:环境角色(Context):包含解释器之外的全局信息抽象表达式(AbstractExpression):声明抽象解释操作真实表达式(ContreteExpression):实现抽象表达式的操作四、代码示例:一...
原创
2021-12-25 17:57:44
136阅读
一、核心作用:------将对象组合成树形结构以表示部分-整体的层次结构------组合模式使用户可以使用一致的方法处理单个对象和组合对象二、常见应用场景:1、操作系统的资源管理器2、XML文件解析3、Junit单元测试框架三、组合模式角色分类:组合部件(Component):他是抽象结构,相当于根,定义了叶子和合成部件的共同点叶子(Leaf):在组合中,表示节点对象,无子...
原创
2021-12-25 18:01:43
138阅读
一、核心作用:给定一个语言,定义他的文本表示方式,定义一个解释器,解释器使用表示解释语言的句子二、常见应用场景:1、正则表达式2、运算符表达式三、解释器模式的实现:环境角色(Context):包含解释器之外的全局信息抽象表达式(AbstractExpression):声明抽象解释操作真实表达式(ContreteExpression):实现抽象表达式的操作四、代码示例:一、环境...
原创
2021-12-25 17:57:44
83阅读
一、核心作用:处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理请求,如果能则处理,如果不能则传递给链上的下一个对象二、常见应用场景:1、审批2、开发场景:try-catch三、责任链模式的实现:LeaveRequest:员工提交请求类Leader:抽象的请假责任处理类Director:处理类四、代码示例:一、员工提交请求类:pac...
原创
2021-12-25 18:01:42
66阅读