设计模式
文章平均质量分 72
java常见的设计模式总结
Instanceztt
这个作者很懒,什么都没留下…
展开
-
设计模式--观察者模式(Observer)
设计模式 观察者模式原创 2022-06-17 09:43:48 · 199 阅读 · 1 评论 -
设计模式--责任链模式(Chain of Responsibility)
设计模式 责任链模式原创 2022-06-16 16:59:59 · 363 阅读 · 0 评论 -
设计模式--访问者模式(visitor)
一 引入 年底,CEO和CTO开始评定员工一年的工作绩效,员工分为工程师和经理,CTO关注工程师的代码量、经理的新产品数量;CEO关注的是工程师的KPI和经理的KPI以及新产品数量。 传统方式: 让员工的实现分别提供不同形式的考核方法,如果系统比较小还是ok的但是考虑系统增加越来越多新的功能时,对代码改动较大,违反了ocp原则,不利于维护 这里就可以引入访问者模式 访问模式是一种行为型模式,访问者模式的定义:“表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元原创 2022-05-20 10:34:21 · 223 阅读 · 0 评论 -
设计模式--享元模式(Flyweigh)
一 引入 在图书中我们有多个书籍,书籍包含了作者以及书名等信息,但是图书馆的书并不是白来的,当然是自己去购买的。如果学生想看的书没有那么就需要去购买,也就是创建Book对象,但是如果存在了那么就不需要去购买,而是直接使用.这里就引入了享元模式 二 享元模式结构图 FlyWeight 是抽象的享元角色,他是产品的抽象类,同时定义出对象的外部状态和内部状态的接口或实现 ConcretelyWeight 是具体的享元角色,是具体的产品类,实现抽象角色定义相关业务 UnsharedconcreteFlyWei原创 2022-05-16 11:41:40 · 238 阅读 · 0 评论 -
设计模式--外观模式(facade)
一 引入 现在要组件一个多家庭影院,包含设备投影仪、自动屏幕、播放器和音响等。其过程包括放下屏幕、开投影仪、开音响、开播放器,观影结束后,关闭各种设备. 1.1 传统解决方案 客户端直接调用子系统 存在问题 创建各个子系统的对象,并直接去调用子系统(对象)相关方法,会造成调用过程混乱,没有清晰的过程,不利于客服端去维护子系统的操作 1.2 解决方案 定义一个接口界面类,提供一个一致的界面(如提供四个方法ready、play、pause、end)来操作访问各子系统,屏蔽掉子系统的内部细节,使得客户端调用原创 2022-05-16 10:48:19 · 214 阅读 · 0 评论 -
设计模式--装饰器模式(Decorator)
一 定义 装饰者模式又称包装模式,是指不改变原有对象的基础上,将功能附加到对象上,提供了比继承更有弹性的替代方案.属于结构型设计模式 比如在日常生活中,我们去买煎饼果子,会有一个基础的套餐,不同的人根据自己的喜好选择加不同的配料,比如加了一个鸡蛋装饰,就是鸡蛋煎饼果子,加一个火腿装饰,就是火腿煎饼果子.不管怎么加配料,它本质是一个煎饼,只是对煎饼进行了装饰而已 二 装饰者模式类图 抽象组件(Compent): 一个接口或抽象类 用于规定被装饰者的行为 具体组件(ConcreteCompent):原创 2022-05-12 12:18:40 · 346 阅读 · 0 评论 -
设计模式--桥接模式(bridge)
一 案列 假如有一个汽车类,然后有三个品牌分别是宝马、奥迪、奔驰,而每一个品牌又有三种车分别是跑车、轿车、suv;同时他们的关系都是通过继承来实现的,此时可以看到当需要新增一个类的品牌的时候需要新增多个子类,必须新增捷豹,此时也需要新增跑车、轿车、suv,而新增一个皮卡车的时候可能也需要在奔驰、宝马、奥迪中新增子类。此时你会发现这样处理,类多的有点爆炸了。这时候就可以通过桥接模式来解决这个问题 二 桥接模式结构图 把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以原创 2022-05-12 10:23:09 · 167 阅读 · 0 评论 -
设计模式--适配器模式
一 应用 日常生活中给手机充电,标准电压是220v手机只能接受5v的电压,通过适配器将220v的电压转换为5v给手机充电 二 类适配器 public class Voltage220V { int out220v(){ System.out.println("输出220v电压"); return 220; } } public interface Voltage5V { int out5v(); } public class PhoneVolt原创 2022-05-05 16:36:28 · 105 阅读 · 0 评论 -
设计模式--建造者模式
设计模式--建造者模式原创 2022-05-05 15:47:01 · 88 阅读 · 0 评论 -
设计模式--原型模式
一 应用场景 大学的时候毕业论文太难写了,所以直接抄同学的,但是这种你并不是一个字一个字的重写。而是使用cv大法(ctrl+c和ctrl+v),直接将毕业论文进行复制粘贴。然后自己就可以安心的去打游戏了。 原型模式是一种创建型模式,例如我们要创建一个Student对象都是采用的new Student();但是有些时候对象的创建十分复杂,这个时候原型模式就登场了,就像毕业论文太长了自己写太麻烦。所以我们选择复制。 二 实现原理 通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原创 2022-05-05 14:40:47 · 328 阅读 · 0 评论 -
设计模式--工厂模式
一 工厂模式定义 我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象 工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式 二 简单工厂模式 2.1 uml类图 2.2 具体实现 1 定义抽象产品 package com.cncloud.factory.simplefactory; /** * * @author likun * @date 2022年04月29原创 2022-05-05 12:58:13 · 331 阅读 · 0 评论 -
设计模式--单例模式
设计模式–单例模式 文章目录设计模式--单例模式1. 应用场景2. 常见的单例模式2.1 饿汉式(静态常量)2.2 饿汉式(静态代码块)2.3懒汉式(线程不安全)2.4 懒汉式(线程安全,同步方法)2.5 懒汉式(同步代码块 双重校验机制)2.6 静态内部类2.7 枚举3 单例模式存在风险 1. 应用场景 需要频繁的进行创建和销毁的对象、创建对象时耗时过多或耗费资源过多(即:重量级对象),但又经常用到的对象、工具类对象、频繁访问数据库或文件的对象(比如数据源、session工厂等) 2. 常见的单例模式原创 2022-04-29 11:39:49 · 187 阅读 · 0 评论