![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java设计模式
文章平均质量分 67
-乌鸦
独善其身
展开
-
Java设计模式: 装饰器模式
装饰模式定义:动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更加灵活。通用类图:饰模式的构成:抽象构件(Component)是一个接口或者是抽象类,就是定义我们最核心的对象,也就是原始的对象。具体构件(ConcreteComponent)是最核心,最原始,最基本的接口或者抽象类的实现,你要装饰的就是它。装饰角色(Docorator)一般是一个抽象类,做什么用呢?实现接口或者抽象方法,它里面可不一定有抽象方法呀,在它的属性里必然有一个private变量指向Co原创 2021-04-22 23:02:34 · 98 阅读 · 0 评论 -
Java设计模式: 桥接模式
桥梁模式(桥接模式)定义:将抽象和实现解耦,使得两者可以独立地变化。桥梁模式是为了解决类继承的缺点而设计的。一个类想拥有另一个类的方法,可以不继承,只需要铺设一个桥梁(引用)架过去就OK了。通用类图如下:角色介绍:● Abstraction——抽象化角色它的主要职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色一般是抽象类。● Implementor——实现化角色它是接口或者抽象类,定义角色必需的行为和属性。● Refined Abstraction——修正抽象化角色转载 2021-04-22 14:34:56 · 113 阅读 · 0 评论 -
Java设计模式: 适配器模式
配器模式的个人理解:首先有一个目标角色、一个源角色还有一个适配器角色。我们要做的就是利用适配器角色将源角色转换为目标角色。而目标角色是一个正在良好运行的一个角色。转换方法:适配器类继承extends源角色——类适配器适配器类和原角色类进行关联,即通过适配器类的构造函数将多个源角色引入——对象适配器(常用)适配器模式的定义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。通用类图:角色定义:● Target目标角色原创 2021-04-22 00:16:56 · 111 阅读 · 0 评论 -
Java设计模式: 代理模式
代理模式:(Proxy Pattern)也叫做委托模式,是一个使用率非常高的模式。定义:为其他对象提供一种代理以控制对这个对象的访问。个人理解:代理模式将原类进行封装,客户端不能直接找到原类,必须通过代理角色。即代理是原类的一个替身,客户端要找原类,统统找代理就可以搞定。明星和经纪人就是一种代理模式。通用类图如下:角色定义:● Subject 抽象主题角色抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求。● RealSubject 具体主题角色也叫做被原创 2021-04-21 23:47:21 · 152 阅读 · 0 评论 -
Java设计模式: 原型模式
个人理解:原型模式是一种比较简单的设计模式,在项目中使用的场景非常多。原型模式实现了对Java中某个对象的克隆功能,即该对象的类必须implements实现Cloneable接口来标识为可被克隆,然后需要覆写Object类的clone( )方法。简单点说就是:实现一个接口重写一个方法就可以实现原型模式。定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。通用类图如下所示:原型模式的核心是一个clone方法,通过该方法进行对象的拷贝,Java提供了一个Cloneable转载 2021-04-21 15:09:41 · 395 阅读 · 0 评论 -
Java设计模式: 建造者模式
1. 什么是建造者模式建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示建造者模式包括的角色:(1)Builder:给出一个抽象接口或抽象类,以规范产品的建造。 这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建,一般由子类具体实现。(2)ConcreteBuilder:Builder接口的实现类,并返回组建好对象实例。(3)Director:调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的信息, 只负责保证原创 2021-04-21 11:23:51 · 250 阅读 · 0 评论 -
Java设计模式:抽象工厂模式--农场的季节生产对应水果举例
/** * 农场的抽象。不同季节生产不同的蔬菜和水果。 */public interface Farm { //不同季节,不同蔬菜和水果。 int WINTER = 1; //冬季。 int SUMMER = 2; //夏季。 Fruit makeFruit(); //制造水果。 Vegetable makeVegetable();//制造蔬菜。}/** * 水果的抽象。 */public interface Fruit extends Pl原创 2021-04-21 00:31:43 · 769 阅读 · 0 评论 -
Java设计模式: 工厂模式
普通工厂:public interface Sender { void send(); }public class SmsSender implements Sender { @Override public void send() { System.out.println("SmsSender send()"); }}public class MailSender implements Sender { @Overrid原创 2021-04-20 23:52:10 · 64 阅读 · 0 评论