设计模式笔记

创建型模式

工厂模式(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;
   }
}

抽象工厂模式(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;
   }
}

单例模式(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!");
   }
}

懒汉式

饿汉式

双检锁/双重校验锁(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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值