![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
23种涉及模式
weicheng3016
这个作者很懒,什么都没留下…
展开
-
建造者Builder
概述 一个复杂对象的构建往往需要构建很多部件,建造者模式将这些部件的构建抽取出来,当所有部件都构建完毕后才完成这个复杂对象的构建 场景 复杂产品按部件构建 实现 产品 /** * 被构建的产品 */ public class Car { private String wheel; private String body; private String engine; public void setWheel(String wheel) { this.wh原创 2021-09-11 15:56:16 · 59 阅读 · 0 评论 -
工厂方法FactoryMethod和抽象工厂AbstractFactory
工厂方法FactoryMethod 概述 根据具体工厂获取对应产品,客户端无需关注产品构建过程 场景 用于生产单个产品 实现 定义抽象工厂接口,申明构建产品方法 /** * 抽象工厂接口 */ public interface IFactory { /** * 构建产品方法 * @return */ Product newProduct(); } 定义抽象产品接口 /** * 抽象产品 */ public interface Product {原创 2021-09-11 15:04:17 · 97 阅读 · 0 评论 -
原型模式Prototype
概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象 场景 游戏存档 对于复杂对象,已存在一个实例时创建新的实例 实现 被克隆的类需要继承Cloneable接口并重写clone方法 浅克隆 /** * 被克隆对象 */ public class BeCloneBean implements Cloneable{ public String name; public String loc; public int age; public A原创 2021-09-11 11:16:06 · 88 阅读 · 0 评论 -
观察者模式Observer
说明 观察者模式主要用于多个观察者(Observer)需要关注到同一目标对象的状态变化,根据状态变化做出响应的情况。比如父母关注孩子的场景。 使用 1、定义被观察者抽象类,申明通知观察者方法 2、具体被观察者继承观察者抽象类,实现通知观察者方法 3、定义观察者接口,申明响应方法 实现 /** * 抽象被观察对象 * 具备添加和删除观察者的方法 */ public abstract class Subject { List<Observer> observerList; p原创 2021-09-06 10:31:09 · 60 阅读 · 0 评论 -
4种单例模式
饿汉式 public class SingleTon01 { public static SingleTon01 SINGLETON01 = new SingleTon01(); private SingleTon01(){ } public static SingleTon01 getInstance(){ return SINGLETON01; } } 优缺点 优点:实现简单,类加载到系统后就创建实例,JVM保证线程安全 缺点:不管是原创 2021-09-03 11:09:41 · 54 阅读 · 0 评论