Java中23种设计模式
设计模式是软件开发中的重要概念,它们为我们提供了一种使用面向对象原则解决常见问题的方法。在Java中,有23种设计模式,可以分为三大类:创建型模式(5种)、结构型模式(7种)和行为型模式(11种)。
下面是每种设计模式的简短描述和示例代码:
创建型模式:
- 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪个类。
public interface VehicleFactory { Vehicle createVehicle(); }
- 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
public interface AnimalFactory { Dog createDog(); Cat createCat(); }
- 建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
public class PizzaBuilder { public Pizza buildPizza() { // build pizza return new Pizza(); } }
- 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一的实例。
public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; } }
结构型模式:
- 适配器模式(Adapter):将一个类的接口转换成客户端期望的另一个接口。
public class Adapter implements TargetInterface { private Adaptee adaptee = new Adaptee(); public void specificRequest() { adaptee.unspecificRequest(); } }
- 装饰器模式(Decorator):动态地给对象添加一些额外的职责。
public class Decorator implements Component { private Component component; public Decorator(Component component) { this.component = component; } public void operation() { // add additional behavior component.operation(); } }
- 代理模式(Proxy):为其他对象提供一个代理以控制对这个对象的访问。
public class Proxy implements Subject { private Subject subject; public Proxy(Subject subject) { this.subject = subject; } public void request() { // add additional behavior subject.request(); } }
行为型模式:
- 观察者模式(Observer):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。
public interface Observer { void update(Observable o, Object arg); }
- 策略模式(Strategy):定义了一系列的算法,把它们一个个封装起来,并且使它们可以互相替换。
public interface Strategy { int execute(int num1, int num2); }
- 模板方法模式(Template Method):定义了一个算法的骨架,并将某些步骤延迟到子类中。
评论已关闭