Java开发中的23种设计模式详解(推荐)
1. 设计模式的介绍
设计模式是一套反复出现的解决问题的经验总结,它们是经过长期实践而形成的,在软件开发中得到了广泛应用。设计模式是一种表达解决问题和实现系统构架的能力。
2. 常用的设计模式
Java的23种设计模式可分为三类:创建型模式、结构型模式和行为型模式。
2.1 创建型模式
创建型模式主要负责对象的创建过程,这些模式的主要目标是将对象的创建和使用分离开来,从而提高系统的灵活性和可扩展性。创建型模式包括以下几种:
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- 建造者模式
- 原型模式
2.2 结构型模式
结构型模式主要用来管理对象之间的关系,这些模式可以在不改变对象结构的前提下,改变对象之间的关系,从而提高系统的灵活性和可维护性。结构型模式包括以下几种:
- 适配器模式
- 桥接模式
- 装饰模式
- 组合模式
- 外观模式
- 享元模式
- 代理模式
2.3 行为型模式
行为型模式主要用来管理对象之间的算法和责任分配,这些模式可以在不改变对象的前提下,改变对象之间的算法和责任分配,从而提高系统的灵活性和可扩展性。行为型模式包括以下几种:
- 模板方法模式
- 命令模式
- 迭代器模式
- 观察者模式
- 中介者模式
- 备忘录模式
- 解释器模式
- 状态模式
- 策略模式
- 职责链模式
- 访问者模式
3. 示例说明
3.1 工厂方法模式示例
public interface Product {
void show();
}
public class ConcreteProduct1 implements Product {
public void show() {
System.out.println("具体产品1显示...");
}
}
public class ConcreteProduct2 implements Product {
public void show() {
System.out.println("具体产品2显示...");
}
}
public interface Factory {
Product createProduct();
}
public class ConcreteFactory1 implements Factory {
public Product createProduct() {
return new ConcreteProduct1();
}
}
public class ConcreteFactory2 implements Factory {
public Product createProduct() {
return new ConcreteProduct2();
}
}
public class Client {
public static void main(String[] args) {
Factory factory1 = new ConcreteFactory1();
Product product1 = factory1.createProduct();
product1.show();
Factory factory2 = new ConcreteFactory2();
Product product2 = factory2.createProduct();
product2.show();
}
}
3.2 观察者模式示例
public interface Observer {
void update(String state);
}
public class ConcreteObserver1 implements Observer {
public void update(String state) {
System.out.println("具体观察者1的状态:" + state);
}
}
public class ConcreteObserver2 implements Observer {
public void update(String state) {
System.out.println("具体观察者2的状态:" + state);
}
}
public interface Subject {
void attach(Observer observer);
void detach(Observer observer);
void notify(String state);
}
public class ConcreteSubject implements Subject {
private List<Observer> observers = new ArrayList<Observer>();
private String state;
public void attach(Observer observer) {
observers.add(observer);
}
public void detach(Observer observer) {
observers.remove(observer);
}
public void notify(String state) {
this.state = state;
for (Observer observer : observers) {
observer.update(state);
}
}
}
public class Client {
public static void main(String[] args) {
Subject subject = new ConcreteSubject();
Observer observer1 = new ConcreteObserver1();
Observer observer2 = new ConcreteObserver2();
subject.attach(observer1);
subject.attach(observer2);
subject.notify("今天下雨了");
}
}
以上就是工厂方法模式和观察者模式的示例说明,通过这些示例可以更好地理解设计模式的实际应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java开发中的23种设计模式详解(推荐) - Python技术站