
23种设计模式
文章平均质量分 83
23种设计模式,记录学习理解
菜菜的后端私房菜
专注Java后端技术栈,热爱工作,热爱生活,关注菜菜,分享更多干货日常哟~
展开
-
Java设计模式之组合模式
文章目录组合模式角色例子代码JDK中的组合模式总结 组合模式 Composite 定义: 将对象组合成树形结构来表示"部分–整体"的层次结构 组合模式使得单个对象和组合对象的使用具有一致性 角色 角色图(大话设计模式图) Component: 抽象类或接口 用来访问和管理它的子部件:Leaf或Composite Composite: Component的子部件,拥有子节点,要实现与子部件相关方法 Leaf: Component的子部件,没有子节点 (所以不用实现与子部件相关方法) 公司例子 组原创 2021-03-17 18:38:16 · 253 阅读 · 2 评论 -
Java设计模式之桥接模式
文章目录桥接模式引入桥接模式桥接模式简介使用桥接模式的代码总结 桥接模式 Bridge 定义: 桥接模式将抽象层与实现层分离,使得抽象层和实现层可以独立变化 引入桥接模式 项目要求: 对不同手机品牌的不同功能进行编程 方案一 继承 当要添加其他品牌手机或添加其他功能,会变得非常复杂 手机品牌与手机功能存在强耦合 桥接模式简介 定义: 桥接模式是一种结构型模式,使用合成复用原则将实现层和抽象层分离解耦,使得实现层与抽象层可以独立改变 比如: 蜡笔与毛笔,它们都有颜色和型号,实现3种型号和3种颜色,蜡笔原创 2021-03-15 23:11:38 · 206 阅读 · 4 评论 -
Java设计模式之代理模式
文章目录代理模式静态代理租房例子角色代理模式租房代码总结动态代理JDK动态代理角色代码总结Cglib动态代理角色代码总结 代理模式 proxy 代理模式可以分为静态代理和动态代理 静态代理 租房例子 角色 大话设计模式角色结构图 抽象角色:一般会使用接口或抽象类来解决(租房) 真实角色(被代理对象或目标对象):被代理的角色(房东) 代理角色(代理对象):代理真实角色,代理真实角色后,会做一些附属操作(中介) 客户:访问代理对象的人(我们,租房的人) 代理模式租房代码 结构图 抽象角色(接原创 2021-03-01 23:21:20 · 115 阅读 · 0 评论 -
Java设计模式之装饰者模式
文章目录装饰者模式引入装饰者模式装饰者模式角色装饰者模式代码JDK中的装饰模式总结 装饰者模式 Decorator 装饰者模式(装饰模式)是一种结构型模式 在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能 它是通过创建一个包装对象,也就是装饰来包裹真实的对象 引入装饰者模式 项目需求: 有一家汉堡店,汉堡店里有卖汉堡和酱料,顾客可以只点汉堡也可以点汉堡+酱料,该如何设计结构 方案一 面向接口编程的思想 , 接口抽象套餐价格方法和套餐内容方法,让套餐实现类去实现方法 当汉堡或酱料很多时,不原创 2021-02-25 10:08:24 · 457 阅读 · 3 评论 -
Java设计模式之适配器模式
文章目录适配器模式角色类适配器模式(继承)对象适配器模式(组合)JDK中的适配器模式总结 适配器模式 作用:将一个接口转换成客户希望的另一个一个接口 适配器模式使得原来接口不兼容而不能一起工作的类能够一起工作 角色 目标(Targer):定义客户所需类(可以是抽象类,具体的类或接口) 适配者(Adaptee):需要适配的类 适配器(Adapter):通过包装适配者,将原接口转换成目标接口 大话设计模式中的结构图 例子: 现在的轻薄笔记本电脑没有网线插口,需要一个转换器,网线插着转换器,电脑的usb原创 2021-02-23 23:29:49 · 189 阅读 · 0 评论 -
Java设计模式之原型模式
文章目录原型模式简介角色分类浅拷贝(浅克隆)深拷贝(深克隆)总结 原型模式 Prototypye 简介 原型模式 类似复制粘贴功能 创建一个实例,用这个实例去拷贝创建新实例(直接从内存中拷贝) 角色 抽象原型(Prototype) 核心:需要实现Cloneable接口,重写clone方法 说明这个类能够被克隆复制的功能 具体原型(Concrete Prototype) 实现抽象原型类 客户端(Cline) 提出创建对象请求(用户使用复制粘贴) 大话设计模式中的图片 分类 浅拷贝(原创 2021-02-22 23:13:05 · 137 阅读 · 4 评论 -
Java设计模式之建造者模式
文章目录建造者模式简介角色代码总结 建造者模式 Builder Pattern 简介 定义:将一个复杂对象的构建与表示分离 作用:在用户不知道 对象的建造过程和细节的情况下可以直接创建复杂对象 角色 Builder 抽象的,由ConcreteBuilder来实现 抽象建造者: 为创建一个产品指定构造部件的方法,由具体建造者去实现 具体实现来依赖Builder接口 面向接口编程 例子:建房子的图纸,这张图纸有建房子的步骤(打地基,打钢筋,装修),无论是建高楼还是别墅你都要来实现这个Builder原创 2021-02-21 23:08:21 · 278 阅读 · 5 评论 -
Java设计模式之工厂模式(简单工厂,工厂方法,抽象工厂模式)
文章目录工厂模式不使用工厂模式简单工厂模式(静态工厂)工厂方法模式抽象工厂模式总结总结 工厂模式 不使用工厂模式 代码模拟买车 public interface Car { void name(); } public class WuLing implements Car { @Override public void name() { System.out.println("五菱宏光"); } } public class Tesla implemen原创 2021-02-20 21:13:52 · 246 阅读 · 0 评论 -
Java设计模式之单例模式
单例模式 Singleton 单例模式是创建型模式,通过单例模式创建的类只有一个实例存在 有时候完全只需要一个实例存在就够了,不用那么多实例存在 单例模式使用场景 频繁创建,销毁对象 创建对象耗时耗资源 工具类 饿汉式 多线程安全,常用 //饿汉式 public class SingLeton01 { //private byte[] bytes = new byte[1024]; //类加载的时候就实例化这个单例 private static final原创 2021-02-19 19:39:23 · 175 阅读 · 2 评论