设计模式
文章平均质量分 71
java-zh
风会不停的吹,时光会不停的走。
展开
-
策略模式——多种发票上传实现案例
策略模式原创 2022-11-22 15:17:19 · 194 阅读 · 0 评论 -
java_策略模式
java策略模式,解决计算时很多if else问题原创 2022-06-21 11:11:32 · 180 阅读 · 0 评论 -
java_命令模式
介绍:命令模式将请求发送者和接受者进行解耦,在发送者和接收者之间引入命令对象,将发送者的请求封装在命令对象中,在通过命令对象来调用接受者的方法.命令模式用于处理对象之间的调用关系,使得这种调用对象更加灵活.定义:将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销操作.主要角色:抽象命令类:抽象命令类一般是一个接口,在其中声明了用于执行请求的execute()等方法,通过这些方法可以调用请求接受者的相关操作具体命令类:具原创 2021-06-04 18:24:19 · 140 阅读 · 1 评论 -
java_责任链接模式
介绍:避免请求发送者和接受者耦合在一起,让多个对象都有可能接收请求将这些对象连接成一条链,并沿着这条链传递请求,直到有对象处理它为止.主要角色:抽象处理者(Handler)抽象处理者定义了一个处理请求的接口,它一般设计为抽象类,由于不同的具体处理者处理请求的方式不同,因此在其中定义了抽象请求方法.因为每个处理者的下家还是一个处理者,因此在抽象处理者中定义了一个自类型(抽象处理者类型)的对象,作为其对下家的引用具体处理者(ConcreteHandler)具体处理者是抽象处理者的子类,它原创 2021-05-13 13:28:55 · 205 阅读 · 3 评论 -
Java_代理模式
优点:降低系统耦合度 远程代理使得客户端可以访问远程机器对象,远程机器可能具有更好的计算性能与处理速度,可以快速的相应并处理客户端需求 可以减少系统资源消耗,对系统进行优化并提高运行速度 保护代理可以控制对真实对象的使用权限缺点:因为在客户端和真实对象之间添加了代理对象,可能会造成处理速度更慢 增加额外工作,并且有些代理是非常复杂的代理模式适用环境:远程代理:为一个不同的地址空间的对象提供一个本地代理对象,不同地址空间可以是在同一台主机上,也可以是另一台主机上虚拟代理:如果要建立原创 2021-05-07 10:41:52 · 274 阅读 · 0 评论 -
java_外观模式
介绍:外观模式为子系统中的一组接口提供一个统一的入口.外观模式定义了一个高层接口,这一接口使得子系统更加容易使用.在外观模式中,外部与一个子系统的通信可以通过一个系统的外观对象进行角色:外观角色:是客户端直接调用的角色,在外观角色中可以知道相关的(一个或多个)子系统的功能和责任,它将所有从客户端发来的请求委派到相应的子系统中去,传递给相应的子系统处理;系统角色:在软件系统中可以有一个或者多个系统角色,每一个子系统可以不是单独的类,而是一个类的集合,它实现了子系统的功能流程图解析:原创 2021-04-19 15:21:27 · 220 阅读 · 0 评论 -
Java_装饰模式
介绍:原创 2021-04-08 22:06:27 · 118 阅读 · 0 评论 -
java_组合模式
介绍:组成对个对象形成树形结构以表示"部分-整体"的结构层次.组合模式对单个对象(叶子对象)和组合对象(容器对象)的使用具有一致性,组合模式可以成为"部分-整体"模式组合模式3大角色:抽象构建:为叶子构建和容器构建对象声明接口,在该角色中可以包含所有子类共有行为的声明和实现 叶子构件:在组合构建中表示叶子节点对象,叶子节点没有子节点 容器构建:在组合构建中表示容器节点对象,容器节点包含子节点,其子节点可以是叶子节点,也可以是容器节点,它提供一个集合用于存储子节点分类:透明组合模式 安原创 2021-04-08 09:57:16 · 176 阅读 · 0 评论 -
java_桥接模式
桥接模式原创 2021-04-07 13:45:10 · 90 阅读 · 1 评论 -
java-适配器模式
介绍:适配器模式用于将一个接口转换成客户所希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名叫做包装器四个角色:目标抽象类:定义客户要用的特定领域接口 适配器类:可以调用另一个接口,作为转换器,对适配者和抽象目标类进行适配,他是一个设配模式的核心 适配者类:是被适配的角色,它定义了一个一存在的接口,这个接口需要适配 客户类:针对目标抽象类进行编程,调用在目标抽象类中定义的业务方法分类:对象适配器 类适配器 缺省适配器解析图:优点:将目标类...原创 2021-04-06 14:13:32 · 357 阅读 · 0 评论 -
Java-单例模式
介绍:确保某个类只有一个实例,而且自行实例化,并向整个系统提供这个实例单例模式的三个要点:某个类只能有一个实例 必须自行创建这个实例 必须自行向整个系统提供这个实例包含角色:单例模式只包含一个单例角色.创建过程注意点:提供一个自身私有的静态成员变量 单例类的构造函数为私有 提供一个公有的静态工厂方法分类:懒汉模式 饿汉模式图:代码://懒汉模式public class LazySingletons { private static La原创 2021-04-02 15:28:54 · 290 阅读 · 0 评论 -
Java深克隆和浅克隆
浅克隆:仅仅复制所考虑的对象,而不复制它所引用的成员对象,也就是说其中的成员对象它并不复制实现方式:实现Cloneable接口图:案例:由于邮件对象包含的内容较多(如:发送者,接收者,标题,内容,日期,附件等等),某系统现在需要提供一个邮件复制功能,对于已经创建好的邮件对象,可以通过复制的方式创建一个新的邮件对象.如果需要改变某部分内容,无需修改原始的邮件对象,只需要修改复制后得到的邮件对象浅克隆:只复制邮件,不复制附件代码附件//附件类public clas原创 2021-04-01 10:39:38 · 273 阅读 · 0 评论 -
Java-建造者模式
介绍:建造者模式将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示.建造者模式是一步一步创建一个复杂对象,它允许用户只通过指定复杂对象的类型和内容就可以构建他们,用户不需要知道具体的构建细节四个角色:抽象建造者:为创建一个产品对象的各个部件指定抽象接口 具体建造者:实现了抽象建造者接口,实现各个部件的构造和装配方法,定义并明确它所创建的复杂对象,也可以提供一个方法返回创建好的复杂产品对象. 产品角色:是被构建的复杂对象,包含多个组成部件 指挥者:负责安排构建对象的构造次序原创 2021-03-31 15:53:04 · 333 阅读 · 0 评论 -
Java-抽象工厂模式
介绍:抽象工厂模式提供一个创建一系列相关或互相依赖对象的接口,而无需指定他们具体的类,抽象工厂模式又称之为kit模式,属于对象创建型模式.四个角色:抽象工厂:用于声明抽象产品的方法 具体工厂:实现了抽象工厂声明的抽象产品方法,生成一组具体产品,这些产品构成了一个产品族,每个产品都位于某个产品等级结构中 抽象产品:为每一种产品声明接口,在抽象产品中定了了产品抽象业务方法 具体产品:具体工厂生产的具体产品对象,实现抽象产品接口定义的方法大致流程图:优点:隔离了具体类生成 每次通过具原创 2021-03-31 11:54:28 · 270 阅读 · 1 评论 -
Java-工厂模式(工厂方法模式)
介绍:工厂方法模式又称为工厂模式,在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪个具体产品工厂模式四个角色抽象产品:定义产品的接口,是工厂方法模式所创建对象的超类型,即产品对象的共同父类或接口 具体产品:实现了抽象产品接口,某种类型的产品由专门的具体工厂创建 抽象工厂:声明了工厂方法,用于返回一个产品,它是工厂方法模式的核心 具体工厂:抽象工厂的子类,实现原创 2021-03-30 16:14:26 · 558 阅读 · 2 评论 -
Java-简单工厂模式
介绍:简单工厂模式又称为静态工厂方法模式,它属于类创建型模式,在简单工厂模式中,可以根据参数的不同返回不同类的实例.简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同父类.简单工厂模式包含三大角色:工厂角色:负责实现创建所有实例的内部逻辑 抽象产品角色:是所创建的所有对象的父类,负责描述所有实例共有的公共接口 具体产品角色:是创建目标,所有创建的对象都充当这个角色的某个具体类的实例要点: 当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象..原创 2021-03-30 11:58:30 · 246 阅读 · 0 评论 -
Java-设计模式分类(创建型,结构型,行为型)
创建型(Creational):主要用于创建对象 工厂方法模式(Factory Method) 将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建)哪个类 抽象工厂方法模式(Abstract Factory) 提供了一个创建一系列相关或者相互依赖对象的接口,而无需指定他们具体的类 建造者模式(Builder) 将一个复杂对象构建与他表示分离,使得同样的构建过程可以创建不同表示 原型模式(Prototype)...原创 2021-03-29 14:25:03 · 436 阅读 · 0 评论 -
面向对象七大原则,设计模式六大原则
单一职责原则:类的职责要单一,不能将太多的职责放到一个类中 开闭原则:软件实体对拓展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去拓展其功能 里氏代还原则:在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象 依赖倒转原则:要针对抽象层(抽象类或者接口)编程,而不要针对具体类编程 接口隔离原则:使用一个专门接口来取代一个统一接口 合成复用原则:在复用功能时,应尽量多使用组合和聚合关联关系,尽量少使用甚至不使用集成关系 ..原创 2021-03-29 12:01:44 · 193 阅读 · 0 评论