• 设计模式笔记


    创建型模式

    工厂模式(Factory Pattern)

    1. 一个接口有多个实现类时,只需向Factory类提供子类的名字,Factory类便可以返回对应的实现类。
    public class ShapeFactory {
        
       //使用 getShape 方法获取形状类型的对象
       public Shape getShape(String shapeType){
          if(shapeType == null){
             return null;
          }        
          if(shapeType.equalsIgnoreCase("CIRCLE")){
             return new Circle();
          } else if(shapeType.equalsIgnoreCase("RECTANGLE")){
             return new Rectangle();
          } else if(shapeType.equalsIgnoreCase("SQUARE")){
             return new Square();
          }
          return null;
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    抽象工厂模式(Abstract Factory Pattern)

    1. 对Factory类使用工厂模式
    public class FactoryProducer {
       public static AbstractFactory getFactory(String choice){
          if(choice.equalsIgnoreCase("SHAPE")){
             return new ShapeFactory();
          } else if(choice.equalsIgnoreCase("COLOR")){
             return new ColorFactory();
          }
          return null;
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    单例模式(Singleton Pattern)

    1. 构造方法私有化
    2. 提供共有的实例访问方法
    public class SingleObject {
     
       //创建 SingleObject 的一个对象
       private static SingleObject instance = new SingleObject();
     
       //让构造函数为 private,这样该类就不会被实例化
       private SingleObject(){}
     
       //获取唯一可用的对象
       public static SingleObject getInstance(){
          return instance;
       }
     
       public void showMessage(){
          System.out.println("Hello World!");
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    懒汉式

    饿汉式

    双检锁/双重校验锁(DCL,即 double-checked locking)

    登记式/静态内部类

    枚举

    建造者模式(Builder Pattern)

    1. 需要生成的对象具有复杂的内部结构。
    2. 需要生成的对象内部属性本身相互依赖
    3. 更加关注于零件装配的顺序
    4. 特点是创建和返回实例。
    5. 本质是把对象的构造方式封装到一个XxxBuilder类的方法中。

    原型模式(Prototype Pattern)

    1. 利用已有的一个原型对象,快速地生成和原型对象一样的实例。
    2. 实现克隆操作,在 JAVA 实现 Cloneable 接口,重写 clone()

    结构型模式

    适配器模式(Adapter Pattern)

    桥接模式(Bridge Pattern)

    过滤器模式(Filter、Criteria Pattern)

    组合模式(Composite Pattern)

    装饰器模式(Decorator Pattern)

    外观模式(Facade Pattern)

    享元模式(Flyweight Pattern)

    代理模式(Proxy Pattern)

    行为型模式

    责任链模式(Chain of Responsibility Pattern)

    命令模式(Command Pattern)

    解释器模式(Interpreter Pattern)

    迭代器模式(Iterator Pattern)

    中介者模式(Mediator Pattern)

    备忘录模式(Memento Pattern)

    观察者模式(Observer Pattern)

    状态模式(State Pattern)

    空对象模式(Null Object Pattern)

    策略模式(Strategy Pattern)

    模板模式(Template Pattern)

    访问者模式(Visitor Pattern)

    J2EE 模式

    MVC 模式(MVC Pattern)

    业务代表模式(Business Delegate Pattern)

    组合实体模式(Composite Entity Pattern)

    数据访问对象模式(Data Access Object Pattern)

    前端控制器模式(Front Controller Pattern)

    拦截过滤器模式(Intercepting Filter Pattern)

    服务定位器模式(Service Locator Pattern)

    传输对象模式(Transfer Object Pattern)

  • 相关阅读:
    阿里云历时13年,站上世界现代计算架构之巅
    Docker简介以及环境搭建
    Hadoop的第二个核心组件:MapReduce框架第四节
    pgsql执行脚本并传参
    【自动化测试入门】用Airtest - Selenium对Firefox进行自动化测试(0基础也能学会)
    royi-vue
    java计算机毕业设计Web医学院校大学生就业信息管理系统源码+mysql数据库+系统+lw文档+部署1
    Python爬虫:aiohttp的介绍和基本使用
    清华学姐三年的测试成长经历,到最后的喜提高薪offer
    【RocketMQ】RocketMQ5.0新特性(一)- Proxy
  • 原文地址:https://blog.csdn.net/langkeyring/article/details/126845670