设计模式
文章平均质量分 73
cici_iii
keep coding
展开
-
代理模式
代理模式一、静态代理二、动态代理 代理模式是SpringAOP的底层! 分类: 静态代理 动态代理 角色分析: 抽象角色:一般会使用接口或者抽象类来解决 真实角色:被代理的角色 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作 客户:访问代理对象的人 代码步骤: 接口 真实角色 代理角色 客户端访问代理 一、静态代理 // 接口:租房业务 public interface Rent { public void rent(); } // 真实角色-房东:具有租房功能 c原创 2021-02-06 22:42:11 · 83 阅读 · 0 评论 -
桥接模式
桥接模式bridge 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 如下,为电脑的多继承结构: 可以看出其多继承为如下两个维度: 可以在代码中进行如下实现: // 品牌接口 public interface Brand { public void info(); } class Apple implements Brand{ @Override publi原创 2021-02-06 18:16:17 · 153 阅读 · 0 评论 -
适配器模式
结构型模式:从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题。 适配器模式 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作! 角色分析 目标接口:客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口。 需要适配的类:需要适配的类或是适配者类。 适配器:通过包装一个需要适配的对象,把原接口转换成目标对象! USB网线转换器 //要被适配的类:网线 public class Adaptee { .原创 2021-02-06 17:28:51 · 97 阅读 · 0 评论 -
原型模式
原型模式一、浅克隆二、深克隆 一、浅克隆 /** * 实现一个接口 Cloneable * 重写一个方法 clone() */ public class Video implements Cloneable{ private String name; private Date createTime; @Override protected Object clone() throws CloneNotSupportedException { return原创 2021-02-06 13:19:24 · 80 阅读 · 0 评论 -
建造者模式
建造者模式定义主要作用实现方式一实现方式二优点缺点应用场景建造者与抽象工厂模式对比 建造者模式也属于创建型模式,它提供了一种创建对象的最佳方式。 定义 将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。 主要作用 在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。 用户只需要给出指定复杂对象的类型和内容,建造者模式负责按照顺序创建复杂对象(把内部的建造过程和细节隐藏起来) 实现方式一 指挥者指挥具体的工人生产产品 //产品:房子 public class Pro原创 2021-02-05 23:15:17 · 85 阅读 · 0 评论 -
工厂模式
工厂模式作用OOP七大原则核心本质三种模式一、简单工厂模式二、工厂方法模式三、抽象工厂模式小结应用场景 工厂模式 作用 实现了创建者和调用者的分离 OOP七大原则 开闭原则:一个软件的实体应当对扩展开放,对修改关闭 依赖倒转原则:要针对接口编程,不要针对实现编程 迪米特法则:只与你直接的朋友通信,而避免和陌生人通信 核心本质 实例化对象不使用new,用工厂方法替代 将选择实现类,创建对象统一管理和控制。从而将调用者和我们的实现类解耦。 三种模式 简单工厂模式:用来生产同一等级结构中的任意产品.原创 2021-02-05 17:25:42 · 277 阅读 · 0 评论 -
单例模式
单例模式1、懒汉模式2、饿汉模式3、DBCL:双重检查锁 ★4、静态内部类单例模式 ★ 1、懒汉模式 线程不安全,延迟初始化,严格意义上不是单例模式 public class Singleton{ private static Singleton instance; // 不允许外界去new对象 private Singleton(){} public static Singleton getInstance(){ if(instance == null}{ instance = new原创 2021-01-30 11:34:53 · 105 阅读 · 1 评论