java中23种设计模式详解
warning:
这篇文章距离上次修改已过180天,其中的内容可能已经有所变动。
设计模式是软件开发中的重要概念,对于Java开发者来说,学习并理解23种设计模式是很有帮助的。下面我将为你提供每种设计模式的简短描述和示例代码。
- 抽象工厂(Abstract Factory)
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
public interface AnimalFactory {
Animal createAnimal();
}
public class DogFactory implements AnimalFactory {
public Animal createAnimal() {
return new Dog();
}
}
- 建造者模式(Builder)
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
public class Car {
private String engine;
private String wheel;
// ...
}
public class CarBuilder {
public Car buildCar(String engine, String wheel) {
Car car = new Car();
car.setEngine(engine);
car.setWheel(wheel);
return car;
}
}
- 工厂方法(Factory Method)
定义一个用于创建对象的接口,让子类决定实例化哪个类。
public interface VehicleFactory {
Vehicle createVehicle();
}
public class CarFactory implements VehicleFactory {
public Vehicle createVehicle() {
return new Car();
}
}
- 原型(Prototype)
用原型实例指定创建对象的种类,并且通过复制这个原型来创建新的对象。
public class Car implements Cloneable {
// ...
public Car clone() {
try {
return (Car) super.clone();
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
}
}
- 单例(Singleton)
确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一的实例。
public class DatabaseConnection {
private static DatabaseConnection instance = null;
private DatabaseConnection() {}
public static synchronized DatabaseConnection getInstance() {
if (instance == null) {
instance = new DatabaseConnection();
}
return instance;
}
}
- 适配器(Adapter)
将一个类的接口转换成客户希望的另一个接口。
public class AnimalAdapter implements Dog {
private Animal animal;
public AnimalAdapter(Animal animal) {
this.animal = animal;
}
public void bark() {
animal.makeNoise();
}
}
- 桥接(Bridge)
将抽象部分与它的实现部分分离,使它们都可以独立地变化。
public interface Engine {
void start();
}
public class V8Engine implements Engine {
public void start() {
System.out.println("V8 Engine starting.");
}
}
- 组合(Composite)
将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对
评论已关闭