
软件设计模式
文章平均质量分 76
大树下躲雨
让未来的自己感谢现在的我
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
命令设计模式
命令设计模式一、命令设计模式1、介绍在软件设计中,我们经常向某些对象发送请求,但是不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可。遇到这种情况可以使用命令模式来设计命令模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系跟家灵活,实现解耦。在命令模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求,同时命令模式也支持可撤销的操作2、原理类图Invoker:调用者角色Receiver:接收者角色,原创 2022-04-20 11:15:06 · 564 阅读 · 0 评论 -
观察者设计模式
观察者设计模式一、观察者设计模式1、介绍观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象Subject,依赖的对象为Observer,Subject通知Observer变化。观察者模式类图:角色: Subject:表示观察对象,该角色定义了注册观察者和删除观察者的方法。它还声明了”获取现在的状态“的方法。 ConcreteSubject:表示具体的观察者对象。当自身状态发生变化,它会通知所有已经注册的Observer角色 Observer:表示观察者对象,负责接收来自Sub原创 2022-04-19 23:21:35 · 257 阅读 · 0 评论 -
代理设计模式
代理设计模式一、代理设计模式1、介绍(1)代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。这样做的好处为可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能(2)被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象(3)代理模式有三种不同的形式,主要有三种静态代理,动态代理(JDK代理、接口代理),Cglib代理(可以在内存动态的创建对象,而不需要实现接口)2、UML二、静态代理1、介绍静态代理:被代理对象与代理对象需要原创 2022-04-13 11:17:31 · 1887 阅读 · 0 评论 -
享元设计模式
享元设计模式一、享元设计模式1、介绍(1)享元模式(Flyweight Pattem)也叫蝇量模式:运用共享技术有效地支持大量细粒度的对象(2)常用于系统底层开发,解决系统的性能问题。例如:数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个(3)享元模式能够解决重复对象的内存浪费问题,当系统中有大量相似对象,需要缓存池时,不需要总是创建新对象,可以充缓冲池里拿。这样可以降低系统内存,同时提高效率(4)享元模式经典应用场景原创 2022-04-13 10:09:20 · 355 阅读 · 0 评论 -
外观设计模式
外观设计模式一、外观设计模式1、介绍外观模式(Facade),也叫“过程模式”。外观模式定义了一个高层接口,用以屏蔽内部子系统的细节,使得客户端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。简化了客户端操作。2、UML原理类图外观类(Facade):为客户端提供统一的调用接口,外观类知道哪些子系统负责处理请求,从而将客户端的请求代理给适当子系统对象客户端(调用者):外观接口的调用者子系统集合:指模块或者子系统,处理Facade对象指派的任务,功能的实际提供者3、外观模式的原创 2022-04-06 16:18:45 · 1390 阅读 · 0 评论 -
组合设计模式
组合设计模式一、组合设计模式1、介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构。将对象组合成树状结构以表示“整体-部分”的层次关系组合模式依据树形结构来组合对象,用来表示部分以及整体层次组合模式属于结构型模式组合模式使得用户对单个对象和组合对象的访问具有一致性。即:组合能让客户以一致的方式处理个别对象以及组合对象2、原理UML类图Component:这是组合中对象声明接口,定义或实现公共有的接口默认行为,用于访问和管理Component原创 2022-04-06 13:36:15 · 1561 阅读 · 1 评论 -
桥接设计模式
一、桥接模式1、介绍桥接模式是一种结构型设计模式桥接模式是将实现和抽象放在两个不同的类层次中,使两个层次可以独立改变桥接模式是基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象和行为实现分离开来,从而可以保持各个部分的独立性以及应对它们的功能扩展2、图解UML图说明:Client类:桥接模式的调用者抽象类(Phone):聚合了Brand接口。在这里是桥接类的角色AlmostPhone/FoldPhone/SlidePhone继承了抽象原创 2022-04-02 11:40:08 · 812 阅读 · 0 评论 -
建造者模式
建造者模式一、基本介绍建造者模式又名生成这模式,是一种对象构建模式。建造者模式用于将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造不同表现(属性)得对象建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。 建造者模式中的4个角色:Product(产品角色):一个具体的产品对象Builder(抽象建造者):创建一个Product对象。约定规范构建和装配产品的各个部件(方法)原创 2022-04-01 13:25:38 · 197 阅读 · 0 评论 -
适配器模式
适配器模式零:适配器1、介绍适配器模式属于结构性设计模式适配器模式用于将某个类的接口转换成客户端期望的另一个接口表示。主要目的是兼容性,不修改代码的基础上,让原本因接口不匹配不能一起工作的两个类可以协同工作。2、工作原理适配器模式:将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容从用户角度看不到被是陪着,是解耦的用户调用适配器转化出来的目标接口方法,适配器在调用被适配者的相关接口3、适配器分类类适配器:以类给到,适配器继承被适配类对象适配器:以对象原创 2022-03-31 23:37:10 · 495 阅读 · 0 评论 -
原型设计模式
原型设计模式一、原型介绍原型模式是创建型设计模式。通过原型实例指定创建对象的种类,并且通过拷贝原型,创建新的对象。原型类A,原型实例A1,通过拷贝原型实例A1,创建多个A的原型实列A2,A3…类似于西游记孙悟空拔出猴毛,变出与其要一模一样的孙悟空。我有类A,我new 了一个实例a1。当我想要再创建跟a1一样的实例时,我们最简单的做法就是继续new一个实例a2,然后将a1中的属性获取并赋值给a2,这样我们就得到了一个与a1一样的实例a2。但是这样的做法如果遇到new的对象比较复杂时,效率很低。而原创 2022-03-31 00:03:32 · 665 阅读 · 0 评论 -
工厂设计模式
工厂模式一、普通写法1、UML1、代码案例/** * @Author: dashu * @Description: 饺子 * @Date: 23:18 * @Version: 1.0 */public abstract class Dumplings { private String stuffing; /** * 准备食材 */ public abstract void ingredient(); /** * 包饺子原创 2022-03-30 22:26:29 · 761 阅读 · 0 评论 -
UML类关系
UML:类关系一、依赖1、介绍A类使用到了B类,那就可以描述为A依赖于B。如果A类没有B类,则无法通过编译2、UML3、代码/** * 人 */public class Person { /** * 吃 */ public void eat(Food food){ System.out.printf("人吃"+food.createFood()); }}/** * 食物 */public class Food原创 2022-03-30 14:58:10 · 466 阅读 · 0 评论 -
设计模式七大设计原则
设计模式:七大设计原则设计模式是为了让程序具有更好的代码重用性(相同功能的代码,不用多次编写)可读性(编程规范性,便于其他程序员的阅读和理解)可扩展性(当需要增加新的功能时,非常的方便,称为可维护)可靠性(当我们增加新的功能后,对原来的功能没有影响)使程序呈现高内聚,低耦合的特性。一、单一职责1、基本介绍在Java中,对一个类来说,一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A22、原创 2022-03-30 12:51:02 · 678 阅读 · 0 评论 -
单例设计模式
单例零、单例设计模式单例设计模式:采取一定的方法保证整个软件系统中,对某个类只能存在一个对象实例;并且该类只提供一个取得其对象实例的静态方法。1、构造器私有化(防止new)2、向外暴露一个静态的公共方法一、饿汉式:成员变量初始化1、代码/** * @Author: dashu * @Description: 单例(饿汉式:成员变量初始化) * @Version: 1.0 */public class Singleton { private final static Si原创 2022-03-24 00:29:24 · 593 阅读 · 0 评论 -
UML初了解
一、统一建模语言1、简介统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。2、作用统一建模语言能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本。它的应用领域很宽,不仅适合于一般系统的开发,而且适合于原创 2021-02-10 15:55:25 · 880 阅读 · 0 评论 -
软件设计模式初了解
软件设计模式一、软件设计模式的产生背景1、设计模式出处设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》(A Pattern Language: Towns Building Construction)中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行原创 2021-02-10 15:10:21 · 251 阅读 · 0 评论