![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java设计模式
文章平均质量分 79
程序员铁蛋
这个作者很懒,什么都没留下…
展开
-
Java设计模式之观察者模式
观察者模式也叫发布订阅模式,意思是:定义对象之间一对多的依赖关系,使得每当一个对象改变状态时,则所有依赖于它的对象都得到通知并被自动更新。观察者模式(发布订阅模式)包含如下角色:抽象发布者:可以增加、删除、通知订阅者;具体发布者:抽象发布者方法的具体实现;抽象订阅者:定义一个接受通知的方法,在得到通知时更新自己的状态;具体订阅者:抽象订阅者的具体实现。下面以订阅报纸为例:publ...原创 2020-02-28 18:13:03 · 64 阅读 · 0 评论 -
Java设计模式之原型模式
在创建一个对象的时候,通常会使用到类中的构造方法,也就是说,对象是从类中创建的。但是在某些特殊情况下,是不允许或不希望直接调用构造方法,即不通过类来创建对象,怎么办呢?我们就可以通过已经创建好的对象“克隆”出新的对象,即不通过类来创建实例,而通过实例来创建实例,这就是原型模式。原型模式使用的场景如下:类初始化消耗资源较多,构造方法比较复杂;需要在循环体中大量创建对象。所有的类都继承了O...原创 2020-02-25 16:44:25 · 75 阅读 · 0 评论 -
Java设计模式之建造者模式
建造者模式是指将一个复杂的对象的创建过程与它的表示分类,使得同样的创建过程可以创建出不同的表示。简单说,就是把创建对象时像搭积木一样一块一块去拼装对象的属性。建造者模式适用于创建对象的过程需要具体指定创建顺序,且不同的顺序会产生不同的结果。建造者模式包含四个角色:抽象建造者(IBuilder):IBuilder负责定义复杂对象各部分的创建方法以及创建完成后返回实例的方法;实际建造者(Bui...原创 2020-02-25 14:39:17 · 102 阅读 · 0 评论 -
Java设计模式之装饰者模式
装饰者模式是指在不改变原有对象的基础上,将功能附加到对象上,扩展原有对象的功能。装饰者模式中包含四个角色:被装饰者:可以使一个接口或抽象类,定义一些已有的功能;被装饰者实现类:实现了被装饰者的具体功能;装饰者:一个继承了被装饰者的抽象类,必须是个抽象类,而且类中必须含有被装饰者的引用;装饰者子类:装饰者的子类,实现了被装饰者的方法。下面以给视频增加评论为例:创建IVideo接口:...原创 2020-02-24 16:15:40 · 94 阅读 · 0 评论 -
Java设计模式之适配器模式
适配器模式是指将一个类的接口转换成用户期望的另一个接口,使得原本不兼容的类可以一起工作。比如:手机充电需要5V的电压,而生活供电是220V电压,所以给手机充电就需要一个5V的充电器,这个充电器就是适配器。由此可见,适配器模式的出现是为了解决现有的类或接口不能满足需求,且无法直接修改的问题。适配器模式包含的角色如下:被适配者(Adaptee):比如:220V的电压就是被适配者,表示已经存在的类...原创 2020-02-24 14:22:16 · 71 阅读 · 0 评论 -
Java设计模式之策略模式
策略模式定义:定义一组通过方法的接口,然后各个实现类实现该接口,然后再定义一个类将各个实现类封装起来以屏蔽实现类的细节。策略模式中,有三个模块:策略接口模块,用来定义一个公共的策略方法;策略实现类模块,公共策略方法的具体实现;实现类封装模块,用于封装每个具体策略实现类,以屏蔽实现细节;下面以做选择题为例:定义选择策略接口:public interface ChoiceQuesti...原创 2020-02-24 11:50:46 · 97 阅读 · 0 评论 -
Java设计模式之模板模式
模板模式:定义一个算法的框架,将一些方法由子类实现。简单说,就是为子类设计一套执行流程,以便子类可以复用这套流程。模板模式由抽象父类和子类构成,父类中包含:模板方法(定义执行流程,子类调用)抽象方法(子类必须实现)钩子方法(微调模板方法的执行流程,子类可选择重写或不重写)具体方法(子类不可重写)下面以学生考试为例,具体介绍模板模式:定义抽象父类:public abstract ...原创 2020-02-24 10:31:36 · 250 阅读 · 0 评论 -
Java设计模式之代理模式
代理模式是指给某个对象提供一个代理对象,由代理对象控制对原对象的访问。代理对象可以在调用原对象方法的前后进行其他操作,是对原对象方法的一种增强实现。为什么会存在代理模式?原对象无法直接引用,这时候需要代理对象起到中介作用,需要代理类和被代理类实现相同的接口想增强被代理类的功能且不修改委托类的代码,可以使用代理类,符合开闭原则代理模式一般分为两种:静态代理和动态代理。在代理模式中,通常存...原创 2020-02-21 17:25:06 · 86 阅读 · 0 评论 -
Java设计模式之单例模式
假设有一个User类,User中的成员变量和成员方法有静态的和非静态的,创建对象user的过程如下:public class User { private String name = "Java"; public static int age = 10; public String getName() { return name; }}...原创 2020-02-20 18:07:17 · 97 阅读 · 0 评论 -
Java设计模式之抽象工厂模式
在简单工厂模式和工厂方法模式中,针对的场景都是生产同类产品,比如菜品类,其中在工厂方法模式中,我们可以通过定义菜品工厂类接口,然后把具体的创建工作交给子类。如果是生产多种类的产品该怎么办呢?比如,我们新增饮品类,如果还是按照工厂方法模式,我们就需要再次创建饮品工厂类接口,然后交给子类去创建,最后业务类需要创建每一个具体饮品工厂对象。如果还需要新增其它品类,不仅会导致类数目的增加,还会增加业务层与底...原创 2020-02-20 12:04:12 · 118 阅读 · 0 评论 -
Java设计模式之工厂模式
在介绍工厂模式之前,我们先看如下代码:创建菜品接口IDishespublic interface IDishes { void eat();}创建实现类Hamburgerpublic class Hamburger implements IDishes { @Override public void eat() { System.out.pr...原创 2020-02-19 20:03:08 · 129 阅读 · 0 评论