设计模式
流浪大人
这个作者很懒,什么都没留下…
展开
-
设计模式(四)、策略模式
策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。策略模式通过将算法与使用算法的代码解耦,提供了一种动态选择不同算法的方法。客户端代码不需要知道具体的算法细节,而是通过调用环境类来使用所选择的策略。环境(Context):维护一个对策略对象的引用,负责将客户端请求委派给具体的策略对象执行。环境类可以通过依赖注入、简单工厂等方式来获取具体策略对象。原创 2024-04-29 11:46:48 · 1264 阅读 · 1 评论 -
设计模式(三)、模板方法设计模式
模板方法模式(Template Method Pattern):定义一个操作中算法的框架而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤模式结构模板方法模式包含如下角色:AbstractClass: 抽象类ConcreteClass:具体子类模式分析模板方法(Template Method)基本方法(Primitive Method)抽象方法(Abstract Method)具体方法(Concrete Method)原创 2024-04-29 10:42:02 · 874 阅读 · 3 评论 -
设计模式(二)、工厂模式-抽象工厂模式
● ConcreteFactory(具体工厂):它实现了在抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品。● ConcreteProduct(具体产品):它定义具体工厂生产的具体产品对象,实现抽象产品接口中声明的业务方法。● AbstractProduct(抽象产品):它为每种产品声明接口,在抽象产品中声明了产品所具有的业务方法。转载 2023-07-10 20:41:47 · 198 阅读 · 0 评论 -
设计模式(二)、工厂模式-工厂方法和抽象工厂的区别
工厂方法模式: 一个抽象产品类,可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。抽象工厂模式: 多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。原创 2023-07-10 20:46:40 · 740 阅读 · 0 评论 -
设计模式(二)、工厂模式--工厂方法模式
抽象工厂(抽象类或接口)不在负责具体的创建过程,即具体的代码实现。只制定了规范,具体的实现将由具体的工厂去实现。在这个模式中,工厂类和产品类往往可以依次对应。即一个抽象工厂对应一个抽象产品,一个具体工厂对应一个具体产品,这个具体的工厂就负责生产对应的产品。工厂方法模式是一种常用的创建型设计模式。它解决了简单工厂模式的问题:如违反了开闭原则,其次可以用于更复杂的结构。它的核心结构有四个角色抽象工厂;原创 2023-07-10 20:22:19 · 653 阅读 · 0 评论 -
设计模式(二)、工厂模式--简单工厂模式
简单工厂模式的示例原创 2023-07-10 20:07:37 · 536 阅读 · 0 评论 -
设计模式分类
创建型模式: 用于描述如何创建对象,它的主要特点是将对象的创建和使用分离。属于该类的模式有5种: 单例,原型,工厂方法,抽象工厂,建造者 结构型模式 用于描述如何将类或对象按某种布局组成更大的结构。属于该类的模式有7种: 代理,适配器,桥接,装饰,外观,享元,组合 行为型模式: 用于描述类或者对象之间怎样相互协作共同完成单个对象无法完成的任务,以及怎样分配指责。属于该类的模式有11种: 策略,命令,职责链,状态,观察者,中介者,迭代器,访问者,备忘录,解释器 ...原创 2022-04-21 10:44:16 · 225 阅读 · 0 评论 -
设计模式(一)、单例模式
简介: 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 该模式特点: 1、实例类只有一个 2、该单例类只能自己创建自己 3、向整个系统提供唯一实例 饿汉式: public class SingletonTest { /** .原创 2021-07-02 10:52:33 · 102 阅读 · 0 评论 -
设计模式(一)、单例模式-双检锁/双重校验锁
单例模式的懒汉式要想线程安全,除了加同步锁外,还有其他解决方法。如:双重锁机制,静态内部类,枚举。。。。本文主要是双重锁机制 加同步锁的懒汉式: public class SingletonTest { private static SingletonTest singeltonTest; //构造方法私有化,上面创建一个对象后就不能在new新的对象,保证对象只有一个 private SingletonTest() { } public static synchronize原创 2021-07-02 14:06:26 · 687 阅读 · 0 评论 -
设计模式(一)、单例模式-静态内部类
静态内部类不会随着外部类的加载和初始化而初始化,它是要单独去加载和初始化的 因为是在内部类加载和初始化时创建的,因此线程是安全的 public class SingletonTest3 { private SingletonTest3() { } /** * 静态内部类 * */ private static class SingletonHold{ private static SingletonTest3 sTest3 = new SingletonTest3(原创 2021-07-02 14:57:17 · 104 阅读 · 0 评论 -
设计模式(一)、单例模式-枚举类型
使用枚举的方法来实现单例时很简单的一种方法,同时也可以防止反序列化攻击。 public enum SingletonTest4 { INSTANCE; public void doSomething() { System.out.println("doSomething"); } public static void main(String[] args) { SingletonTest4.INSTANCE.doSomething(); } } Java规定,每一个枚举类型原创 2021-07-02 15:34:02 · 109 阅读 · 0 评论