本文最后更新于2 分钟前,文中所描述的信息可能已发生改变。
什么是设计模式?
设计模式是软件设计中常见问题的典型解决方案。(感觉都是为了使得设计的程序可扩展性好,不易出错,灵活高效)
根据意图/目的来分类
创建型模式
提供创建对象的机制,增加已有代码的灵活性和可复用性。(个人理解:创建对象的形式)
- 工厂方法模式 定义一个用于创建对象的接口,让子类决定实例化哪一个类。使一个类 提供一种创建对象的方式而不需要指定要创建的具体类。创建过程延迟到子类进行
实现:在工厂类的工厂方法中返回一个接口类型,工厂方法的具体实现由其子类去定义,在子类中返回的类型需实现这个公共接口。也就是说让子类决定工厂方法的具体返回类型,客户端调用工厂方法并不知道其实现细节。扩展时只需要新增一个工厂的子类并重写其工厂方法即可。
应用场景:不同条件下创建不同的实例时。 - 单例模式 让一个类只有一个实例并提供一个访问该实例的方法。 实现:
java
public final class A{
public static A a;
public String b;
private A(String b){this.b=b;}
public static A newAInstance(String b){
if(a == null){
a = new A(b);
}
return a;
}
}
结构型模式
介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。(组织业务结构的形式)
行为型模式
负责对象间的高效沟通和责任委派。(模块之间的通信,信息传递)
- 观察者模式(发布者-订阅者模式) 当发布者中被订阅者订阅的状态改变时,所有订阅了该状态的订阅者都会收到来自发布者的通知并自动更新。定义了一种一对多的关系。主要解决一个对象状态改变给其他对象通知的问题。