设计模式

面向对象设计原则

  • 单一原则:
    • 每个对象只有一个单独的职责
    • 高内聚,低耦合
  • 开闭原则:
    • 一个对象对扩展开放,对修改关闭
    • 对类的改动是通过增加代码进行的,而不是修改现有的代码
  • 里氏替换原则:
    • 在任意父类出现的地方都可以用子类来替代
  • 依赖注入原则:
    • 要依赖于抽象,不要依赖于具体实现
    • 基本思想:在开发中面向接口编程
  • 接口分离原则:
    • 一个接口不要提供太多的方法
  • 迪米特原则:
    • 一个对象对其他对象要尽可能少的了解
    • 基本思想:低耦合
  • 使用组合而不是继承的原则:
    • 基本思想:在复用对象的时候,要优先考虑组合,而不是继承。因为父类的任何改变都会影响子类行为

设计模式的分类

  • 创建型模式:创建对象
  • 结构型模式:对象的组成及对象的关系
  • 行为型模式:对象的行为(功能)

常用的设计模式

  • 装饰模式:IO流中的Buffered缓冲区就是典型的装饰模式

  • 简单工厂模式

  • 工厂方法模式

  • 单例模式:懒汉式,饿汉式;Runtime类是一个单例类

      //饿汉式
      class Singleton {
          //1,私有构造函数
          private Singleton(){}
          //2,创建本类对象
          private static Singleton s = new Singleton();
          //3,对外提供公共的访问方法
          public static Singleton getInstance() {
              return s;
          }
      }   
    
      //懒汉式, 单例的延迟加载模式
      class Singleton {
          //1,私有构造函数
          private Singleton(){}
          //2,创建本类对象
          private static Singleton s;
          //3,对外提供公共的访问方法
          public static Singleton getInstance() {
              if(s == null){
                  s = new Singleton();
              }
              return s;
          }
      }
      
      // 第三种
      class Singleton {
          private Singleton() {}
          // final修饰的变量不可以被更改
          public static final Singleton s = new Singleton();
      }
    
  • 观察者模式

  • 代理模式

  • 适配器模式

    • 什么是适配器
      • 在使用监听器的时候, 需要定义一个类事件监听器接口
      • 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐
      • 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可
    • 适配器原理
      • 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的
      • 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了
  • 模板设计模式

你可能感兴趣的:(设计模式)