软件设计模式:实战演练

本文提供三个程序设计题目,帮助你深入理解并实践三种常见的设计模式:单例模式、工厂模式和观察者模式。

1. 实现一个线程安全的单例模式类

  • 要求:设计一个类,确保无论在多线程环境下被调用多少次,都只会创建一个实例。

2. 实现一个工厂模式的类

  • 要求:设计一个类,可以根据传入的参数创建不同类型的对象。

3. 实现一个观察者模式的类

  • 要求:设计一个类,可以让多个对象监听同一个事件,并在事件触发时执行相应的操作。

代码示例:

**单例模式:**javapublic class Singleton { private static Singleton instance; private Singleton() {}

public static synchronized Singleton getInstance() {        if (instance == null) {            instance = new Singleton();        }        return instance;    }}

**工厂模式:**javapublic interface Product { void show();}

public class ConcreteProductA implements Product { @Override public void show() { System.out.println('A'); }}

public class ConcreteProductB implements Product { @Override public void show() { System.out.println('B'); }}

public class Factory { public static Product createProduct(String type) { if ('A'.equals(type)) { return new ConcreteProductA(); } else if ('B'.equals(type)) { return new ConcreteProductB(); } return null; }}

**观察者模式:**javapublic interface Observer { void update(String message);}

public class Subject { private List observers = new ArrayList<>();

public void attach(Observer observer) {        observers.add(observer);    }

public void detach(Observer observer) {        observers.remove(observer);    }

public void notifyObservers(String message) {        for (Observer observer : observers) {            observer.update(message);        }    }}

尝试用代码实现以上三个模式,并思考以下问题:

  • 如何确保单例模式的线程安全性?* 工厂模式如何根据不同的参数创建不同的对象?* 观察者模式如何实现多个对象监听同一个事件?

通过实际代码编写,你将更深刻地理解设计模式的应用场景和实现方法。

软件设计模式:单例、工厂、观察者模式实现实战

原文地址: https://www.cveoy.top/t/topic/nP0a 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录