![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 52
设计模式的介绍以及简单的实现
风逸云舒
人生碌碌,竞短论长,却不道枯荣有数,得失难量。
展开
-
建造者模式【创建型模式】
目录1.特点2.模式与结构2.1.模式2.2.结构图3.实现3.1.创建产品3.2.抽象建造者3.3.建造者实现3.4.指挥者3.5.客户端4.应用场景1.特点创建抽象类的构造器,之后进行实现抽象构造器(可以实现多个构造器),然后把构造器交由指挥者进行指挥(Directo)创建出想要的产品。2.模式与结构2.1.模式建造者(Builder)模式的主要角色如下。产品角色(Product):它是包含多个组成部件的复杂对象,由...原创 2021-12-15 23:10:14 · 265 阅读 · 0 评论 -
简单工厂模式【创建型模型】
目录1.特点2.模型与结构2.1.模型2.2.结构图3.代码实现3.1.产品抽象3.2.产品实现3.3.产品的构建4.应用场景1.特点在一个类中定义不同类型的不同实现,通过入参进行判断,生产出来的产品是什么。2.模型与结构2.1.模型简单工厂模式的主要角色如下:简单工厂(SimpleFactory):是简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。抽象产品(Product原创 2021-12-15 22:59:54 · 840 阅读 · 0 评论 -
抽象工厂【创建者模型】
目录1.特点2.模式与结构2.1.模式2.2.结构图3.实现3.1.动物类抽象3.2.动物类实现类3.3.植物类抽象类3.4.植物类实现类3.5.农场类抽象类3.6.农场类实现类4.应用场景1.特点抽象工厂是工厂模式的升级版本,工厂模式只生产一个等级的产品,而抽象类可以生成多个等级的产品。2.模式与结构2.1.模式抽象工厂模式的主要角色如下抽象工厂(Abstract Factory):提供了创建产品的接口,它包含多个...原创 2021-12-13 11:30:38 · 99 阅读 · 0 评论 -
工厂模式【创建型模式】
目录1.特点2.模式与结构2.1.模式2.2.结构3.实现3.1.产品的抽象3.2.产品的具体实现3.3.工厂抽象类3.4.工厂类实现类4.应用场景1.特点工厂模式是简单工厂的升级版本,在简单工厂模式中,把所有的创建细节交给了简单工厂,不符合开闭原则(在新增产品的时候需要对工厂进行修改),所以引进了简单工厂类,把产品和工厂进行抽象出来,只有那个产品才知道使用那个工厂进行加工。2.模式与结构2.1.模式工厂方法模式的主要角色如下...原创 2021-12-13 09:48:23 · 71 阅读 · 0 评论 -
原型模式【创建型模式】
目录1.特点2.模型与结构2.1.模型2.2.结构图3.实现3.1.深克隆3.2.浅克隆4.应用场景1.特点实在原有对象的基础上进行复制操作。克隆的实现都需要继承Cloneable,重写clone方法。克隆还分为深克隆和浅克隆两种类型。2.模型与结构2.1.模型原型模式包含如下角色:抽象原型类:规定了具体原型对象必须实现接口具体访问类:实现抽象原型类的clone()方法,它是可被复制的对象...原创 2021-12-12 15:44:20 · 262 阅读 · 0 评论 -
单例模式【创建型模式】
目录1.特点2.模式与结构2.1.结构图3.实现3.1.懒汉模式3.2.饿汉模式4.应用场景1.特点只有一个对象存在,懒汉模式和饿汉模式的区别是是否在加载信息的时候就创建对象。2.模式与结构2.1.结构图3.实现3.1.懒汉模式public class LazySingleton { private static volatile LazySingleton instance = null; //保证 in原创 2021-12-12 13:32:54 · 1059 阅读 · 0 评论 -
装饰者模式
装饰者模式的使用场景:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 需要动态地给一个对象增加功能,这些功能也可以动态地被撤销。 当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时。不能采用继承的情况主要有两类:第一类是系统中存在大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长;第二类是因为类定义不能继承(如final类)...原创 2021-06-17 22:54:53 · 82 阅读 · 0 评论 -
观察者模式
观察者模式目录观察者模式1.首先创建"广播与管理"的抽象类(以及对应的实现类)1.1.抽象类1.2.实现类2.创建广播实体的抽象方法以及对应的实现(便于实现个性功能)2.1.抽象2.2.对应的抽象的实现方法3.验证观察者定义了对象的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。注:在使用设计机构的时候,要注意松耦合的,当两个对象是松耦合的时候,他们之间依然是可以相交,但是不太清楚彼此的细节。观察者模式提供一种对象设计,让原创 2021-05-18 21:48:02 · 77 阅读 · 0 评论 -
抽象工厂设计模式
抽象工厂的设计模式目录抽象工厂的设计模式Duck类定义的两个行为抽象类FlyBehavior以及QuackBehavior定义这两个行为抽象类的实现类测试验证思考问题:如果把一个类作为抽象类,然后把功能进行抽象,这样做会存在什么问题呢?假设: 我对一个鸭子的抽象类进行定义,我可以定义其飞行的方法、叫声、颜色及相关属性。正常的鸭子是没有问题的,但是如果有一个橡皮鸭,是否也需要重写这个方法。先首:橡皮鸭是不会飞的,所以我们不需要有飞行方法。每次要实现鸭子的抽象原创 2021-05-18 21:43:34 · 60 阅读 · 0 评论