关于Java的设计模式

一、设计原则

  1. 开闭原则:对扩展开放,对修改关闭。
  2. 里氏代换原则:父类可以被子类代替,即继承。
  3. 依赖倒转原则:针对接口编程,依赖于抽象而不依赖于具体。
  4. 接口隔离原则:使用多个隔离的接口来降低耦合。
  5. 迪米特法则:一个实体应当尽量少地与其它实体间发生相互作用,使得系统功能模块相互独立。
  6. 合成复用原则:尽量使用合成/聚合的方式,而不是使用继承,继承容易破坏类的封装性。

二、设计模式

  1. 工厂模式:常用的工厂模式是静态工厂,利用static方法,作为一种类似于常见的工具类Utils等辅助效果,一般情况下工厂类不需要实例化。
  2. 抽象工厂模式:一个基础接口定义了功能,每个实现接口的子类就是产品,然后定义一个工厂接口,实现了工厂接口的就是工厂,这时候,接口编程的优点就出现了,我们可以新增产品类(只需要实现产品接口),只需要同时新增一个工厂类,客户端就可以轻松调用新产品的代码。
  3. 单例模式:一般采用内部类机制来实现。

    public final class SingleDemo {
    
    private SingleDemo() {
    }
    
    public static SingleDemo getSingleInstance() {
        return Inner.instance;
    }
    
    
    private static final class Inner {
        private static final SingleDemo instance;
    
        static {
            instance = new SingleDemo();
            System.out.println("Inner is called only once!");
        }
    }
    }
  4. 建造者模式:建造者模式。
  5. 原型模式:即通过克隆方式来创建新的实例。
  6. 适配器模式:分为类适配和对象适配,目的是兼容新旧接口。
  7. 装饰模式:利用组合并实现组合类的接口,同时在具体实现中加入新的逻辑,目的是进行功能扩展。
  8. 代理模式:可以对旧功能进行代理,用一个代理类调用原有的方法,且对产生的结果进行控制。
  9. 外观模式:为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。
  10. 桥接模式。
  11. 组合模式:可以表示层次结构或部分和整体结构一样的数据。
  12. 享元模式:使用共享对象的方法,用来尽可能减少内存使用量以及分享资讯。
  13. 过滤器模式:使用不同的标准来过滤一组对象。
  14. 责任链模式。
  15. 命令模式:是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
  16. 解释器模式:提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。
  17. 中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
  18. 备忘录模式:保存一个对象的某个状态,以便在适当的时候恢复对象。
  19. 观察者模式:当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。
  20. 状态模式:类的行为是基于它的状态改变的。
  21. 空对象模式。
  22. 策略模式:一个类的行为或其算法可以在运行时更改。
  23. 模板模式:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。
  24. 访问者模式:通过这种方式,元素的执行算法可以随着访问者改变而改变。

猜你喜欢

转载自blog.csdn.net/qq_28665631/article/details/80610106
今日推荐