设计模式概述
classDiagram
class 设计模式 {
class 创建型 {
[工厂模式]
[单例模式]
}
class 结构型 {
[适配器模式]
[装饰器模式]
}
class 行为型 {
[观察者模式]
[策略模式]
}
}
作用
对软件设计中普遍存在的各种问题所提出的解决方案
本质
对软件设计中普遍存在的各种问题所提出的解决方案
设计原则
原则 | 说明 | 英文 |
---|---|---|
单一职责 | 一个类只负责一项职责 | SRP |
开闭原则 | 对扩展开放,对修改关闭 | OCP |
里氏替换 | 子类可以扩展父类功能但不能改变 | LSP |
接口隔离 | 使用多个专用接口比单一接口好 | ISP |
依赖倒置 | 依赖抽象而不依赖具体实现 | DIP |
示例
// 单例模式示例
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
// 工厂模式示例
interface Shape {
void draw();
}
class Circle implements Shape {
public void draw() {
System.out.println("画圆形");
}
}
class ShapeFactory {
public Shape getShape(String type) {
if ("circle".equals(type)) {
return new Circle();
}
return null;
}
}
注意事项
- 不要过度设计,简单优于复杂
- 模式是指导而非约束
- 结合具体业务场景选择模式
- Java中常用的模式:
- 单例(Singleton)
- 工厂(Factory)
- 观察者(Observer)
- 装饰器(Decorator)