GoF23设计模式
文章平均质量分 63
hello蜗牛
没有一天日子是白来的。
展开
-
单例设计模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 单例模式的结构 单例模式的主要有以下角色: 单例类。只能创建一个实例的类 访问类。使用单例类 单例设计模式分类两种: 饿汉式:类加载就会导致该单实例对象被创建 懒汉式:类加载不会导致该单实例对象被创建,而是首次使用该对象时才会创建 1.饿汉式-方式1(静态变量方式) /** * 饿汉式 * 静态变量创建类的对象 */ public原创 2021-05-31 16:55:44 · 59 阅读 · 2 评论 -
责任链模式
定义: 又名职责链模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 职责链模式主要包含以下角色: 抽象处理者(Handler)角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。 具体处理者(Concrete Handler)角色:实现抽象处理者的处理方法,判断能否处理本次请求,如果可以处理请求则处理,否则将该请求转给它的后继者。 客户类(Client)角色:创建处原创 2021-05-31 16:17:36 · 131 阅读 · 0 评论 -
装饰者模式(Decorator)
装饰者模式(Decorator) 定义: 指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。 结构 装饰(Decorator)模式中的角色: 抽象构件(Component)角色 :定义一个抽象接口以规范准备接收附加责任的对象。 具体构件(Concrete Component)角色 :实现抽象构件,通过装饰角色为其添加一些职责。 抽象装饰(Decorator)角色 : 继承或实现抽象构件,并包含具体构件的实例,可以通过其子类扩展具体构件的功能。 具体装饰(ConcreteD原创 2021-05-31 15:40:32 · 89 阅读 · 0 评论 -
代理模式(Proxy)
代理模式(Proxy) SpringAOP和SpingMVC底层实现使用了代理模式。 代理模式的定义与特点 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 代理模式的主要优点有: 代理模式会造成系统设计中类的数量增加 在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢; 增加了系统的复杂度; 那么如何解决以上提到的缺点呢?答案是可以使用动态代理方式 代理模式的结构与实现 代原创 2021-05-30 23:23:28 · 255 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式 定义:抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口,工无需指定它们具体的类 适用场景 客户端. (应用层)不依赖于产品类实例如何被创建、实现等细节 强调一系列相关的产品对象(属于同一产品族) 一起使用创建对象需要大量的重复代码 提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现 优点: 具体产品在应用层的代码隔离,无需关心创建的细节 将一个系列的产品统一到一起创建 缺点: 规定了所有可能被创建的产品集合,产品簇中扩展新的产品困难; 增加了 系统的抽象原创 2021-05-28 16:49:54 · 71 阅读 · 0 评论