
java设计模式
文章平均质量分 91
bobcoding
多运动多锻炼,多丰富自己的见识、知识,利用所知所得来好好感受感悟这个多彩的世界,最好是为这个世界留下美好,而在闲时读书学习是一辈子最开心的事。
展开
-
Java设计模式之责任链模式(UML类图分析+代码详解)
职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者 对象的链(简单示意图)。这种模式对请求的 发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接 收者的引用。如果一个对象不能处理该请求, 那么它会把相同的请求传给下一个接收者,依 此类推。这种类型的设计模式属于行为型模式。原创 2022-10-27 10:56:46 · 5154 阅读 · 0 评论 -
Java设计模式之策略模式(UML类图分析+代码详解)
策略模式:分别封装行为接口,实现算法族,超类里放行为接口对象,在子类里具体 设定行为对象。1) 策略模式(Strategy Pattern)中,定义算法族,分别封装起来,让他们之间可以 互相替换,此模式让算法的变化独立于使用算法的客户。2) 上面说的1 的问题,其实是继承带来的问题:对类的局部改动,尤其超类的局部改 动,会影响其他部分。1) 其它鸭子,都继承了Duck类,所以fly让所有子类都会飞了,这是不正确的。1) 应用实例要求 编写程序完成前面的鸭子项目,要求使用策略模式。原创 2022-10-26 15:52:49 · 7439 阅读 · 0 评论 -
Java设计模式之状态模式(UML类图分析+代码详解)
状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外 输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了 其类。原创 2022-10-25 22:04:56 · 5037 阅读 · 0 评论 -
Java设计模式之解释器模式(UML类图分析+代码详解)
在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这 里的词法分析器和语法分析器都可以看做是解释器。解释器模式(Interpreter Pattern):是指给定一个语言(表达式),定义它的文法 的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式),1、应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树。2、一些重复出现的问题可以用一种简单的语言来表达。原创 2022-10-24 21:50:13 · 1723 阅读 · 0 评论 -
Java设计模式之备忘录模式(UML类图分析+代码详解)
备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保 存的状态。可以这里理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情, 或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录 模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某 些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作。备忘录模式属于行为型模式。原创 2022-10-23 17:41:03 · 1146 阅读 · 0 评论 -
Java设计模式之中介者模式(UML类图分析+代码详解)
中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立 地改变它们之间的交互2) 中介者模式属于行为型模式,使代码易于维护3) 比如MVC模式,C(Controller控制器)是M(Model模型)和V(View视图)的中 介者,在前后端交互时起到了中间人的作用。原创 2022-10-22 17:19:54 · 1518 阅读 · 0 评论 -
Java设计模式之观察者模式(UML类图分析+代码详解)
观察者模式是对象之间多对一依赖的一种设计方案,被依赖的对象为Subject, 依赖的对象为Observer,Subject通知Observer变化,比如这里的奶站是 Subject,是1的一方。用户时Observer,是多的一方。观察者模式设计后,会以集合的方式来管理用(Observer),包括注册,移除和通知。这样,我们增加观察者(这里可以理解成一个新的公告板),就不需要去修改核心类WeatherData不会修改代码,遵守了ocp原则。原创 2022-10-22 12:04:53 · 3238 阅读 · 0 评论 -
Java设计模式之迭代器模式(UML类图分析+代码详解)
迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式。如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类, 或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历 方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素, 不需要知道集合对象的底层表示,即:不暴露其内部的结构。原创 2022-10-21 17:32:43 · 1689 阅读 · 0 评论 -
Java设计模式之访问者模式(UML类图分析+代码详解)
访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作, 它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构与数据操作分离,解决 数据结构和操作耦合性问题。访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者 的接口。访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作 (这些操作彼此没有关联),同时需要避免让这些操作"污染"这些对象的类,可以选用访问者模式解决。原创 2022-10-20 15:21:16 · 1619 阅读 · 0 评论 -
Java设计模式之命令模式(UML类图分析+代码详解)
命令模式(Command Pattern):在软件设计中,我们经常需要 向某些对象发送请求,但是并不知道请求的接收者是谁,也不知 道被请求的操作是哪个, 我们只需在程序运行时指定具体的请求接收者即可,此时,可以 使用命令模式来进行设计。命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让 对象之间的调用关系更加灵活,实现解耦。在命名模式中,会将一个请求封装为一个对象,以便使用不同参 数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。原创 2022-10-19 20:16:46 · 3904 阅读 · 0 评论 -
Java设计模式之模板方法模式(UML类图分析+代码详解)
模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),z 在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法 实现,但调用将以抽象类中定义的方式进行。模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子 类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定 步骤这种类型的设计模式属于行为型模式。原创 2022-10-18 20:51:36 · 2709 阅读 · 0 评论 -
Java设计模式之代理模式(UML类图分析+代码详解)
代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理 对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的 功能操作,即扩展目标对象的功能;被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象;代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK代理、接口代 理)和 Cglib代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于 动态代理的范畴)。原创 2022-10-17 19:37:39 · 2273 阅读 · 0 评论 -
Java设计模式之享元模式(UML类图分析+代码详解)
享元模式(Flyweight Pattern) 也叫 蝇量模式:运 用共享技术有效地支持大量细粒度的对象。常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避 免重新创建,如果没有我们需要的,则创建一个。享元模式能够解决重复对象的内存浪费的问题, 当系统中有大量相似对象,需要缓冲池时。不需 总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率4) 享元模式。原创 2022-10-15 14:48:12 · 1954 阅读 · 1 评论 -
Java设计模式之外观模式(UML类图分析+代码详解)
外观类(Facade): 为调用端提供统一的调用接口, 外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给适当 子系统对象,调用者(Client): 外观接口的调用者,子系统的集合:指模块或者子系统,处理Facade 对象指派的任务,他是功能的实际提供者。原创 2022-10-14 16:47:59 · 1792 阅读 · 0 评论 -
Java设计模式之组合模式(UML类图分析+代码详解)
组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结 构,将对象组合成树状结构以表示“整体-部分”的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客 户以一致的方式处理个别对象以及组合对象组合模式原理类图Composite是管理者,叶子结点Leaf是被管理者。原创 2022-10-13 20:27:31 · 3342 阅读 · 0 评论 -
Java设计模式之装饰者设计模式(UML类图分析+代码详解)
装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp),这里提到的动态的将新功能附加到对象和ocp原则在下面代码会加以体现。原创 2022-10-12 14:34:23 · 1709 阅读 · 0 评论 -
Java设计模式之桥接模式(UML类图分析+代码详解)
桥接模式是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。它是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同 的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现 (Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。原创 2022-10-11 18:18:40 · 2288 阅读 · 0 评论 -
java设计模式之适配器模式(UML类图分析+代码详解)
适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。适配器模式属于结构型模式。适配器模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。原创 2022-10-09 18:21:12 · 2459 阅读 · 0 评论 -
java设计模式之建造者模式(UML类图分析+代码详解)
建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方 法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象 的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。原创 2022-10-08 18:22:36 · 2265 阅读 · 0 评论 -
java设计模式之原型模式(UML类图分析+代码详解)
原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象;原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象, 无需知道如何创建的细节;它的工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建 的对象通过请求原型对象拷贝(clone)它们自己来实施创建。原创 2022-10-04 21:52:53 · 1291 阅读 · 0 评论 -
java设计模式之工厂模式(UML类图分析+代码详解)
工厂模式的意义:将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系的解耦。从而提高项目的扩展和维护性。2) 三种工厂模式 (简单工厂模式、工厂方法模式、抽象工厂模式) 3) 设计模式的依赖抽象原则:创建对象实例时,不要直接 new 类, 而是把这个new 类的动作放在一个工厂的方法中,并返回。有的书上说,变量不要直接持有具体类的引用。不要让类继承具体类,而是继承抽象类或者是实现interface(接口)。不要覆盖基类中已经实现的方法。原创 2022-10-03 20:07:52 · 1821 阅读 · 0 评论 -
java设计模式之单例模式(附代码详解)
本文将介绍java设计模式之单例模式,所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session 对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory就够,这是就会使用到单例模式。原创 2022-09-29 22:01:19 · 411 阅读 · 0 评论 -
java设计模式的概述和分类
1) 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验, 模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern) 代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时 间的试验和错误总结出来的。2) 设计模式的本质提高软件的维护性,通用性和扩展性,并降低软件的复杂度。原创 2022-09-29 15:48:23 · 170 阅读 · 0 评论 -
java设计模式中常用的UML相关知识
1)UML——Unified modeling language UML (统一建模语言),是一种用于软件系统 分析和设计的语言工具,它用于帮助软 件开发人员进行思考和记录思路的结果。2) UML本身是一套符号的规定,就像数学 符号和化学符号一样,这些符号用于描 述软件模型中的各个元素和他们之间的 关系,比如类、接口、实现、泛化、依 赖、组合、聚合等。3) 使用UML来建模,常用的工具有 Rational Rose , 也可以使用一些插件来建模。原创 2022-09-28 18:15:31 · 234 阅读 · 0 评论 -
java设计模式之七大设计原则(2)
java设计模式之七大设计原则设计模式常用的七大原则:设计模式常用的七大原则有: 1) 单一职责原则 2) 接口隔离原则 3) 依赖倒转原则 4) 里氏替换原则 5) 开闭原则 ocp 6) 迪米特法则 7) 合成复用原则。本文将继续介绍后四个原则:里氏替换原则、OCP原则、迪米特法则、合成复用原则。原创 2022-09-26 18:22:09 · 215 阅读 · 0 评论 -
java设计模式之七大设计原则(1)
本文介绍的是设计模式常用的七大原则有: 1) 单一职责原则 2) 接口隔离原则 3) 依赖倒转原则 4) 里氏替换原则 5) 开闭原则 ocp 6) 迪米特法则 7) 合成复用原则。这七大原则均使用代码进行实现。原创 2022-09-25 20:35:47 · 735 阅读 · 0 评论