![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Robin Zhu.
这个作者很懒,什么都没留下…
展开
-
Java设计模式之中介者模式
文章目录中介者模式的介绍中介模式样例中介者模式的介绍中介者模式也叫调停者模式,它的的定义是:使用一个中间对象(中介者)来封装一系列对象的交互,中介者使得各对象不需要显示地互相作用,降低了耦合度。拿生活中的场景举例,有一个兴趣社团,这个社团中分为几个部门,分别是财务部–管钱的,宣传部–负责宣传,物资部–准备物资。如果要举办一场活动,那么这个社团需要宣传部向物资部申请宣传材料,如画笔、涂料、海报等,物资部还需向财务部申请报销,宣传部在网上宣传打广告可能又要向财务部报销。。。这样社团部门之间就有了一原创 2021-05-30 18:05:59 · 161 阅读 · 0 评论 -
Java设计模式之原型模式
文章目录原型模式介绍原型模式的写法原型模式介绍原型模式的定义是:通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象也就是说,当我们要创建若干个属性相差不多的对象时,不必每次都去new对象,而可以先创建一个原型,然后用这个原型去克隆出新对象,新对象的属性可以按需修改。原型模式的写法原型模式的写法很简单,但是要区分注意是浅拷贝还是深拷贝。下面展示深拷贝的写法:要克隆的类型Student,其中有一个属性是Teacher@Data@AllArg原创 2021-05-30 17:15:29 · 164 阅读 · 0 评论 -
Java设计模式之代理模式
文章目录代理模式介绍代理模式样例静态代理JDK动态代理CGlib动态代理代理模式介绍用简单的话描述代理模式,就是代理对象为被代理对象提供一种代理以控制对这个对象的访问。举个现实中的例子来说,公司A提供电脑维修服务,但是维修服务实现者不是公司A本身,而是公司B,所以用户向A公司购买电脑维修服务,干活的其实是公司B。这个场景,就是公司A实现了对公司B的代理。代理模式样例静态代理代理对象和被代理对象所要实现的接口:public interface IUser{ public abstrac原创 2021-05-30 16:35:14 · 159 阅读 · 0 评论 -
Java设计模式之建造者模式
文章目录建造者模式介绍建造者模式样例建造者模式介绍当我们要构建一个对象,但是,这个对象的属性多如牛毛,如果我们在不了解所有属性的情况下,无法通过构造方法创建出这个对象—如果要“按需创建”,那么就要有多种构造方法的重载。于是,建造者模式应运而生,它实现了复杂对象的构建与表示的分离。建造者模式样例House是我们要建造的对象,它包含florr,wall,roof与其他一些列属性。public class House { private String floor; private Str原创 2021-05-30 14:55:09 · 93 阅读 · 0 评论 -
Java设计模式之模版方法模式
文章目录模版方法模式介绍模版方法样例模版方法模式介绍模版方法的写法很简单,使用的场景是,抽象类中的某个方法(称为模版方法)调用了抽象类中的其他基本方法,那么在继承这个抽象类时,就不必重写这个模版方法,而只需要重写其他基本方法。模版方法样例有这样的一个场景,在生产宝马车之前我们要有一个车的基础模型,这个模型规定了宝马车的基本功能,如鸣笛、启动、停车,模型还规定了要对宝马车进行测试:即调用鸣笛、启动、停车的功能,这样测试方法就可以当做一个模版方法,在父类中写了之后,子类不需要重写。宝马模型定义:一原创 2021-05-30 11:15:38 · 70 阅读 · 0 评论 -
Java设计模式之抽象工厂模式
文章目录抽象工厂模式介绍抽象工厂模式样例抽象工厂模式介绍工厂方法模式在同一个产品族下扩展新产品显得得心应手,那么设想有以下情景:我们有多个产品族,如果手机产品族、饮料产品族、服装产品族,其中各个产品族里有多种产品。我们有不同的客户,每个客户都要这个产品族里的一种产品,于是就产生了多种产品的组合,此时我们可以使用抽象工厂模式来应对这个场景。抽象工厂模式样例从上文介绍出发,我们有Phone、Drink两个产品族:public abstract class Phone {}public abstr原创 2021-05-30 10:58:38 · 66 阅读 · 0 评论 -
Java设计模式之工厂方法模式
文章目录工厂方法模式介绍工厂方法模式代码样例工厂方法模式介绍工厂方法模式的优点在于,如果我们有一个产品族,使用工厂方法模式就可以方便地在这个产品族下开发新产品。例如,我们有有一个产品族是Pet,这个产品族里包含Dog,Cat,Pig,Bird等多个产品。那么我们就可以定义一个PetFactory,PetFactory中有一个泛型方法createPet,根据传入的Pet类型来创建返回相应类型的Pet,如传入Dog.class,则可以创建Dog对象;传入Cat.class,则可以创建Cat对象。于是,原创 2021-05-30 10:24:07 · 101 阅读 · 0 评论 -
Java设计模式之单例模式
文章目录懒汉式内部静态方法创建单例利用内部静态类懒加载饿汉式加载类时直接创建单例对象使用枚举单例模式的写法保证了内存中只有该类的一个实例对象,从写法上划分,大致可以分为饿汉式与懒汉式。本文介绍饿汉式的两种写法与懒汉式的两种写法。懒汉式内部静态方法创建单例使用内部静态方法创建单例的写法要考虑到线程安全,因此可以用synchronized关键字为创建单例对象的代码加锁。在synchronized之前还要判断INSTANCE是否为空,是为了避免每个线程要获取单例时都先去抢占锁,提高了性能。注意,原创 2021-05-30 09:36:34 · 72 阅读 · 0 评论