设计模式
Tyella
喜欢一切新奇好玩的事物
展开
-
桥接模式,门面模式,组合模式,享元模式
桥接模式桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。public interface DrawAPI { void drawCircle(int radius, int x, int y);}public class RedCircle implements DrawAPI { @Override public void drawCircle(int radius, int x, int y) { //... }}public原创 2021-10-21 09:41:12 · 215 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter Design Pattern)是用来做适配的,将不兼容的接口转换为可兼容的接口,让原来不兼容的类转换为可兼容的类。适配器模式有“类适配器”和“对象适配器”两种实现。“类适配器”使用继承关系实现,“对象适配器”使用组合关系实现。具体代码如下:// ITarget表示要转化成的接口定义,Adaptee是一组不兼容ITarget接口定义的接口,Adaptor将Adaptee转化成一组符合ITarget接口定义的接口// 类适配器:基于继承public interface IT原创 2021-10-21 09:40:01 · 46 阅读 · 0 评论 -
观察者模式
定义:在对象之间定义一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会收到通知。被依赖的对象 被观察者 依赖的对象 观察者subject-observer,publisher-subscriber等不同称呼。public interface Subject { void resigterObserver(Observer observer); Observer removeObserver(Observer observer); void原创 2021-10-21 09:38:58 · 52 阅读 · 0 评论 -
模版模式。
模板模式模板模式:在一个方法中定义一个骨架,并将这些步骤推迟到子类中实现。模版方式可以在子类不改变整体算法结构的情况下,重新定义算法中的某些步骤。算法:广义的业务逻辑public abstract class AbstractClass { public void templateMethod() { //... method1(); //... method2(); } pr原创 2021-10-21 09:36:49 · 63 阅读 · 0 评论 -
代理模式。
代理模式代理模式在不改变原始类代码的情况下,通过引入代理类来给原始类附加功能。代理模式的应用场景:代理模式最常用应用场景是,在业务系统中开发一些非功能性需求,比如:监控、统计、鉴权、限流、事务、幂等、日志。我们将这些附加功能与业务功能解耦,放到代理类中统一处理,让程序员只需要关注业务方面的开发。Spring AOP的底层实现就是基于动态代理。代理模式的实现:一般情况下,我们让代理类和原始类实现同样的接口。但是,如果原始类并没有定义接口,并且原始类代码并不是我们开发维护的。在这种情况下,我们可以通过原创 2021-10-21 09:35:54 · 58 阅读 · 0 评论 -
迭代器模式
迭代器模式用来遍历集合对象。集合可以是数组,链表,树,图,跳表等。迭代器模式将集合对象的遍历操作从集合中拆分出来,放到迭代器中,让两者的职责更加单一。public interface Iterator<E> { boolean hasNext(); E next(); default void remove() { throw new UnsupportedOperationException("remove");原创 2021-10-21 09:31:33 · 64 阅读 · 0 评论 -
职责链模式
职责链模式:多个处理器依次处理同一个请求,一个请求先经过A处理器处理,然后把请求转给B处理器,B处理器处理完后再传递给C处理器。以此类推,形成一个链条。链条上的每个处理器各自承担各自的处理职责,所以叫做职责链模式。public interface IHandler { boolean handle();}public class HandlerA implements IHandler { @Override public boolean handle() {原创 2021-10-21 09:27:56 · 62 阅读 · 0 评论 -
建造者模式
三.建造者模式为什么需要建造者模式建造者模式和工厂模式的区别示例1.为什么需要建造者模式如果一个类中有很多属性,都是必填项。如果使用构造函数,参数列表非常长,影响代码的可读性和易用性。在这种情况下,就要使用builder模式如果类的属性之间有一定的依赖关系和约束条件,使用构造函数或set()方式就比较难处理这种情况,需要使用builder模式我们希望创建不可变对象,对象创建好后,就不能再修改对象内部的属性值。要实现这个功能,我们就不能在类中暴露set()方法,就要使用builder模式。原创 2021-10-21 09:24:54 · 69 阅读 · 0 评论 -
单例模式。
单例模式:一个类只创建一个实例。单例模式有两种实现方式。饿汉式,在类加载时立即初始化类实例。懒汉式,只有当使用时才创建类实例。@ThreadSafepublic class Singleton { // 饿汉模式 private static Singleton singleton = new Singleton(); // 防止其他类实例化此类 private Singleton() { } public static Singl原创 2020-08-16 20:29:10 · 111 阅读 · 0 评论 -
设计模式概述
一、什么是设计模式 设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用。设计模式是一套被反复使用的、多数人知晓的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且提高代码的可靠性。二、设计模式的分类1.根据目的分类 设计模式根据目的(模式是用来做什么的)可分为创建型、结...原创 2019-01-15 09:59:07 · 191 阅读 · 0 评论 -
原型模式
一、什么是原型模式 原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。 原型模式是一种对象创建型模式,它的工作原理非常简单:将一个原型对象传给要发动创建的对象(即客户端对象),这个要发动创建的对象通过请求原型对象复制自己来实现创建过程。原型模式在软件开发中有较高的使用频率,很多软件提供的复制(Ctrl+C)和粘贴(Ctrl+V)就是...原创 2019-01-14 23:31:25 · 955 阅读 · 1 评论 -
桥接模式
一、什么是桥接模式 在桥接模式中将两个独立变化的维度设计为两个独立的继承等级结构,而不是将二者耦合在一起形成多层继承结构。桥接模式在抽象层建立起一个抽象关联,该关联关系类似一条连接两个独立继承结构的桥,故名桥接模式。桥接模式将抽象部分与它的实现部分解耦,使得两者都能够独立变化。二、桥接模式结构1.Abstraction(抽象类):用于定义抽象类的接口,通常是抽象类而不...原创 2019-01-14 15:39:46 · 378 阅读 · 0 评论 -
适配器模式
一、什么是适配器模式 适配器模式:将一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作。适配器模式是7种结构型设计模式的一种,关注如何将现有类和对象组织在一起形成更加强大的结构。不同的结构型模式从不同的角度来组合类或对象。二、适配器模式结构 适配器模式包括类适配器和对象适配器。在对象适配器模式中,类和对象之间是关联关系;在类适...原创 2019-01-14 14:52:56 · 157 阅读 · 0 评论 -
抽象工厂模式
一、什么是抽象工厂模式 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。二、抽象工厂模式结构 在抽象工厂模式中,每一个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品,这些产品构成了一个产品族。1.抽象工厂(AbstractFactory):它声明了一组用于创建一族产品的方法,每一个方法对应一种产品。2.具...原创 2019-01-13 21:41:30 · 98 阅读 · 1 评论 -
工厂方法模式
一、什么是工厂方法模式 工厂方法模式:定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类负责生产具体的产品对象。这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。二、工厂方法模式结构 ...原创 2019-01-13 20:47:43 · 298 阅读 · 0 评论 -
简单工厂模式
一、什么是简单工厂模式 简单工厂模式:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。由于在简单工厂模式中创建实例的方法通常是静态方法,因此简单工厂模式又被称为静态工厂方法模式。二、简单工厂模式结构1.Factory(工厂角色):工厂角色即工厂类,它是简单工厂模式的核心,负责实现创建所有产品实例的内部逻辑。2.Product...原创 2019-01-13 17:27:16 · 81 阅读 · 0 评论 -
单例模式
一、什么是单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。对于一个软件系统中的一些类而言,只有一个实例很重要。例如一个系统只能有一个窗口管理器或文件系统,一个系统只能有一个计时工具等。二、单例模式的结构 单例模式是最简单的设计模式,它只包含一个类,即单例类。对于Singleton(单例),在单例类的内部创建它的唯一实例,并通...原创 2019-01-13 16:33:40 · 110 阅读 · 0 评论 -
一文看懂UML类图和时序图
这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来; 有了这些知识,理解设计模式结构图就没有什么问题了。从第一个示例开始请看以下这个类图,类之间的关系是我们需要关注的:车的类图结构为<<abstrac...原创 2019-01-17 11:14:01 · 566 阅读 · 0 评论