![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
_G_T
小小码农
展开
-
原型模式(创建型)
定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 原型模式会要求对象实现一个可以“克隆”自身的接口。这样就可以通过拷贝或者克隆一个实例对象本身来创建一个新的实例。如果把这个方法定义在接口上,看起来就像是通过接口创建了新的接口对象。 结构说明 Prototype:声明一个克隆自身的接口,用来约束想要克隆自身的类,要求它们都要实现这里定义的克隆方法。 ConcretePrototype:实现Prototype接口的类,这些类真正实现了克隆自身的功能。 Client:使用原型的客户端,首先原创 2020-10-20 15:33:04 · 134 阅读 · 0 评论 -
单例模式
单例模式是一种常见的设计模式,其主要特点为 1、单例类智能有一个实例 2、单例类必须自己创建自己的唯一实例 3、单例类必须给其他对象提供这一实例 单例模式确保某个类只有一个实例,并且自行实例化并向整个系统提供整个实例。 单例模式主要有懒汉式和饿汉式 懒汉式 在第一次调用的时候,实例化自己 public class Singleton { private Singleton(){ } private static Singleton singleton = null;原创 2020-10-19 17:09:41 · 79 阅读 · 0 评论 -
抽象工厂模式
概念 抽象工厂模式的功能 抽象工厂的功能是为一系列相关对象或相互依赖的对象创建一个接口。一定要注意,这个接口内的方法不是任意堆砌的,而是一系列相关或相互依赖的方法。从某种意义上讲,抽象工厂其实是一个产品系列,或者产品族。 实现成接口 AbstractFactory在java中通常实现成接口。当然如果需要为这个产品族提供公共的功能,可以可以将AbstractFactory实现成为抽象类,不过一般不这么做。 使用工厂方法 AbstractFactory定义了创建产品所需要的接口,具体的实现是在实现类里面,通常在原创 2020-10-19 17:03:00 · 66 阅读 · 0 评论 -
工厂模式
工厂模式 工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、工厂方法模式,以及抽象工厂模式。工厂模式是编程中经常用到的一种模式。它的主要优点有: 可以使代码结构清晰,有效地封装变化。在编程中,产品类的实例化有时候是比较复杂和多变的,通过工厂模式,将产品的实例化封装起来,使得调用者根本无需关心产品的实例化过程,只需要依赖工厂即可得到自己想要的产品。 对调用者屏蔽具体的产品类。如果使用工厂模式,调用者只关系产品的接口就可以了,至于具体实现,调用者根本无需关心。即使变更了具体的实现,对调用者原创 2020-10-19 17:02:19 · 93 阅读 · 0 评论 -
设计模式原则
设计模式是一套被反复使用、多数人只晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解、保证代码的可靠性。毫无疑问,设计模式于己于人于系统都是多赢的。设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络,如同大厦结构一样。 单一职责原则 单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。其定义如下: 一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因 单一职责原则告诉我们:在软件系统中,一个类(大到模原创 2020-10-19 17:00:08 · 93 阅读 · 0 评论 -
建造者模式 / 生成器模式(创建型)
定义 将一个复制对象的构建与表示分离,使得同样的构建过程可以创建不同的表示 生成器者模式解决问题的思路 要实现相同的构建过程可以创建不同的表示,那么一个自然的思路就是先把构建过程抽象独立出来,在建造者模式中称其为指导者,由他来指导装配过程,但是不负责每步具体实现。当然,光有指导者是不够的,必须要有能具体实现每步的对象,在生成器模式中称这些具体的实现对象为生成器。这样一来指导者就可以重用构建过程,而生成器是可以被切换的具体实现。 生成器模式角色说明 Builder:生成器接口,定义创建一个Product对象原创 2020-10-19 16:45:12 · 118 阅读 · 0 评论 -
代理模式
Java的三种代理模式 转自博客园:https://www.cnblogs.com/cenyu/p/6289209.html 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如...转载 2019-04-28 21:55:41 · 228 阅读 · 0 评论 -
简单工厂(创建型)
简单工厂:提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口,抽象类,也可以是具体的类 Api.class package pattern.simpleFactory; public interface Api { public void test(); } ApiImpl.class package pattern.simpleFactory; p...原创 2018-11-20 10:47:44 · 99 阅读 · 0 评论 -
软件设计模式概述(摘自《研磨设计模式》)
设计模式概述: 设计模式:是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。 具有如下特点: 1、设计模式是解决某些问题的办法 2、设计模式不是凭空想象出来的,是经验的积累和总结 3、设计模式并不是一成不变的,而是在不断发展中 4、设计模式并不是软件行业独有的,各行各业都有自己的设计模式 设计模式的组成: 模式名称:就是每个设计模式的名字,好记忆,...原创 2018-11-19 16:59:44 · 382 阅读 · 0 评论 -
适配器模式(结构型)
适配器模式:将一个类的接口转换成客户客户希望的另一个接口。适配器模式使得原本由于接口不能兼容而不能在一起工作的那些类可以在一起工作 适配器模式的主要功能是进行转换匹配,目的是复用已有的功能,而不是来实现新接口。也就是说,客户端需要的功能应该是已经实现好了的,不需要适配器模式来实现,适配器模式主要负责把不兼容的接口转换成客户端期望的样子就可以了。 package pattern.adapter...原创 2018-11-22 11:03:38 · 261 阅读 · 0 评论 -
外观模式(结构型)
外观模式:为子系统中的一组接口提供一个一致的界面,外观模式(Facade)定义了一个高层接口,这个接口使得这一子系统更加容易使用 package pattern.facade; public interface AModuleApi { public void testA(); } ---- package pattern.facade; public class AModule...原创 2018-11-20 15:55:59 · 82 阅读 · 0 评论