![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 64
java设计模式
默语玄
这个作者很懒,什么都没留下…
展开
-
设计模式之----工厂设计模式JAVA版
工厂设计模式原创 2021-12-30 10:50:46 · 391 阅读 · 1 评论 -
设计模式之----职责链设计模式JAVA版
职责链设计模式职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的 请求传给下一个接收者,依此类推。这种类型的设计模式属于行为型模式使用场景学校 OA 系统的采购原创 2021-12-30 10:32:14 · 313 阅读 · 0 评论 -
设计模式之----策略设计模式JAVA版
策略设计模式原创 2021-12-23 16:09:40 · 230 阅读 · 0 评论 -
设计模式之----状态设计模式JAVA版
状态设计模式状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态判断的逻辑转移到表示不同状态的一系列当中,可以把复杂的判断逻辑简化。它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态 和行为是一一对应的,状态之间可以相互转换状态模式的注意事项和细节代码有很强的可读性。状态模式将每个状态的行为封装到对应的一个类中。方便维护。将容易产生问题的 if-els原创 2021-12-20 23:50:43 · 326 阅读 · 0 评论 -
设计模式之----解释器设计模式JAVA版
解释器设计模式解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。解释器模式需要解决的是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决问题。就像是,我们常常会在字符串中搜索匹配的字符或判断一个字符串是否满足我们的需求(规定的格式)的时候,一般都会使用正则表达式来实现。而匹配字符串的需求在软件的很多地方都会用上原创 2021-12-16 17:54:18 · 441 阅读 · 0 评论 -
设计模式之----备忘录设计模式JAVA版
备忘录设计模式备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态了。(类似游戏存档)简单来说,现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,预防忘记了。在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退的时候,可以从备忘录对象里获取原来的数据进行恢复操作。它属于行为型模式备忘录模式的注意事项和细节给用户提供了一种原创 2021-12-16 11:04:21 · 336 阅读 · 0 评论 -
设计模式之----中介者设计模式JAVA版
中介者设计模式原创 2021-12-15 17:43:16 · 68 阅读 · 0 评论 -
设计模式之----观察者设计模式JAVA版
观察者设计模式观察者模式又叫发布-订阅(Publish/Subscribe)模式。观察者模式 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。...原创 2021-12-14 11:29:05 · 460 阅读 · 0 评论 -
设计模式之----迭代器设计模式JAVA版
迭代器设计模式迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示,属于行为型模式。当你需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,就应该考虑使用迭代器模式了。如果我们的集合元素是用不同的方式实现的,有数组,还有 java 的集合类,或者还有其他方式,当客户端要遍 历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。或者你需要对聚集又多种方式遍历的时候,也可以使用迭代器模式。 比如正序原创 2021-12-10 16:42:27 · 200 阅读 · 0 评论 -
设计模式之----访问者设计模式JAVA版
访问者设计模式访问者模式(Visitor),表示一个作用于某对象结构中的各种元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。就是封装一些作用于某种数据结构的各种元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构和数据操作分离开,解决数据结构和数据操作的耦合问题。访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口。主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这原创 2021-12-10 15:51:24 · 79 阅读 · 0 评论 -
设计模式之----命令设计模式JAVA版
命令设计模式命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个, 我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计。命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命名模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的原创 2021-12-08 17:32:07 · 277 阅读 · 0 评论 -
设计模式之----模板方法设计模式JAVA版
模板方法设计模式模板方法模式(Template),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。它在一个抽象类中公开定义了执行它的方法模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。它属于行为型设计模式模板方法模式解决豆浆制作问题应用实例要求 编写制作豆浆的程序说明如下: 制作豆浆的流程 选材—>添加配料—>浸泡—>放到豆浆机打碎通过添加不同的配料,可以制作出不同口原创 2021-12-02 17:12:02 · 132 阅读 · 0 评论 -
设计模式之----代理设计模式JAVA版
代理设计模式代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。它为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。这样的好处是:可以在目标对象实现的基础上,增加额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。代理模式有不同的形式,主要有三种静态代理 、动态代理(JKD代理/接口代理) 和 Cglib代理(可以内存动态的创建对象,从而不需要实现接口,属于动态代理的一部分)。静态代理静态代理在使用原创 2021-12-01 16:54:15 · 89 阅读 · 0 评论 -
设计模式之----享元设计模式JAVA版
享元设计模式原创 2021-11-30 15:58:26 · 552 阅读 · 0 评论 -
设计模式之----外观设计模式JAVA版
外观设计模式外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。就像买股票和买基金的区别,股票由本人自己选择买和出,而基金是由基金经理帮你选择买和出。...原创 2021-11-29 14:59:40 · 142 阅读 · 0 评论 -
设计模式之----组合设计模式JAVA版
组合设计模式组合模式(Composite) ,又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示 整体-部分 的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。属于结构型设计模式。组合模式使得用户对单个对象与组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象。何时使用组合模式:当需求中是体现部分与整体层次的结构的时候,或者是用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。如这个I原创 2021-11-26 14:54:59 · 498 阅读 · 0 评论 -
设计模式之----装饰者设计模式JAVA版
装饰者设计模式装饰者模式(Decorator):动态的给一个对象添加一些新的功能,就增加功能来说,装饰者模式比继承更加灵活,装饰者更加是体现了开闭原则。使用场景装饰者是为已有的功能动态地增加新的功能的一种方式。当你设计的系统里需要增加新的功能的时候(向旧的类中加新代码)。这些新加的代码通常装饰了原有类的职责或者主要行为。实现逻辑:把每个要装饰的功能放在单独类中,并让这个类包装它所需要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择的、按顺序的使用装饰功能包装对象了。原创 2021-11-24 16:05:24 · 311 阅读 · 0 评论 -
设计模式之----桥接设计模式JAVA版
桥接设计模式为什么会产生?桥接模式(Bridge):将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。它是一种结构型设计模式。Bridge 模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它主要的特点是把抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。...原创 2021-11-19 15:53:49 · 184 阅读 · 0 评论 -
设计模式之----适配器设计模式JAVA版
适配器模式适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它属于结构型模式主要有三类:类适配器模式、对象适配器模式、接口适配器模式工作原理将一个类的接口转换成另一种接口,让原本不兼容的类可以兼容。从用户的角度看不到被适配者,是解耦的。用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法用户收到的反馈结果,感觉只是和目标接口交互...原创 2021-11-17 15:46:19 · 414 阅读 · 0 评论 -
设计模式之----建造者设计模式JAVA版
建造者模式建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。它是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建他们,用户不需要知道内部的构具体建细节。例如:用户需要一台宝马汽车,而我们有方向盘,轮胎,发动机等,我们只需要将他们组装起来给用户,而用户不需要知道方向盘这些是怎么做出来的。建造者模式的四个角色:Product(产品角原创 2021-11-16 10:56:41 · 364 阅读 · 0 评论 -
设计模式之----原型设计模式JAVA版
原型设计模式什么是原型模式?原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些模型,创建新的对象。原型模式其实是一种创建型设计模式,允许一个对象再创建另一个可定制的对象,无需知道如何创建的细节。实现原理:就是对象调用clone();方法。public class sheep implements Cloneable{ private int age ; private String color ; private String name; private原创 2021-11-12 17:55:40 · 217 阅读 · 0 评论 -
设计模式之----单例设计模式JAVA版
单例设计模式在学设计模式之前,首先来了解一下设计模式它共分为三种类型,共23个设计模式创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。结构型模式:适配器模式、桥接模式、装饰者模式、组合模式、外观模式、享元模式、代理模式。行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)。什么是单例模式?所谓的单例设计模式,就是采取一定的方法保证在整个的软件系原创 2021-09-08 17:05:03 · 116 阅读 · 0 评论 -
UML类图
UML类图是一个统一建模语言,是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。它可以描述各元素之间的关系:关联:类与类之间的联系,可以单向一对一/多(A使用了B而B没有使用A)和双向一对一/多(AB之间相互使用)(特殊的依赖关系)实现:接口被实现泛化(继承):就是继承关系依赖:如果A类使用了B类,或者A类是B类的成员属性,或者是方法的返回类型,或是方法的接受参数类型,或方法中使用到,这样就形成了依赖关系组合:与聚合类似,但是整体与部分不可分开,就像笔记本原创 2021-09-08 14:47:35 · 71 阅读 · 0 评论 -
设计模式七大原则
设计模式七大原则七大原则事实上是程序员在开发的时候需要遵守的原则,它们也是各大设计模式的基础和由来研究七大原则需要带着这几个问题来研究:1. 这个原则是怎么产生的2. 他是用来干嘛的3. 他有什么作用4. 怎么用1.单一原则定义:就一个类而言,应该仅有一个引起它变化的原因。产生的原因:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化的时候,设计会发生意想不到的破坏。意思是说:现在要写一个狗狗原创 2021-09-02 09:53:21 · 79 阅读 · 0 评论