Java 设计模式

什么是设计模式

设计模式(Design pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路,它不是语法规定,而是一套用来提高代码可复用性,可维护性,可读性,稳健性,以及安全性的结局方案。

优点:

  • 可以提高程序员的思维能力,编程能力和设计能力
  • 使程序设计更加标准化,代码编制更加工程化,使软件开发效率大大提高,从而缩短开发周期
  • 使设计的代码可重用性高,可读性强,可靠性高,灵活性好,可维护性强

创建型模式:

  • 单例模式
  • 工厂模式
  • 抽象工厂模式
  • 建造者模式
  • 原型模式

结构型模式:

  • 适配器模式
  • 桥接模式
  • 装饰模式
  • 组合模式
  • 外观模式
  • 享元模式
  • 代理模式

行为型模式:

  • 模板方法模式
  • 命令模式
  • 迭代器莫斯
  • 观察者模式
  • 中介者模式
  • 备忘录模式
  • 解释器模式
  • 状态模式
  • 策略模式
  • 职责链模式
  • 访问者模式

OOP(面向对象)七大原则

  • 开闭原则:对扩列开发,对修改关闭
  • 里氏替换原则:继承必须确保超类所拥有的性质在子类中任然成立
  • 依赖倒置原则:要面向接口编程,不要面向实现编程
  • 单一职责原则:控制类的粒度大小,将对象解耦,提高其内聚性
  • 接口隔离原则:要为各个类建立它们需要的专用接口
  • 迪米特法则:只与你的直接朋友交谈,不要“陌生人”说话
  • 合成复用原则:尽量先使用组合或者聚合或者关联关系来实现,其次才考虑使用继承关系来实现

工厂模式

作用

实现了创建者和调用者的分离

详细分类

  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式

核心本质

  • 实例化对象不适用 new ,用工厂方法代替

  • 将选择实现类,创建对象统一管理和控制。从而将调用者和我们的实现类解耦

三种模式:

  • 简单工厂模式:用来生产同一等级结构中的任意产品(对于增加的新的产品,需要覆盖已有代码)
  • 工厂方法模式:用来生产统一等级结构中的固定产品(支持增加任意产品)
  • 抽象工厂模式:围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂

代理模式

静态代理

角色分析

  • 抽象角色:一般会使用接口和抽象类来解决
  • 真实角色:被代理的角色
  • 代理角色 : 代理真实角色,代理真实角色后,我们一般会做一些附属操作
  • 客户:访问代理对象的人

以客户租房为例:

抽象角色:租房

真实角色:要租房的人,客户

代理角色:中介