Java设计模式:工厂方法的实践案例

原创 亦凉 2024-12-08 16:06 142阅读 0赞

工厂方法(Factory Method)是一种创建型设计模式,它定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。

下面是一个简单的Java工厂方法实践案例:

  1. // 定义一个抽象产品类
  2. abstract class Product {
  3. private String name;
  4. public Product(String name) {
  5. this.name = name;
  6. }
  7. public String getName() {
  8. return name;
  9. }
  10. }
  11. // 创建具体的工厂类
  12. class ConcreteFactory1 extends AbstractFactory {
  13. @Override
  14. public Product createProduct(String type) {
  15. if ("book".equals(type)) {
  16. return new Book("Java编程实践");
  17. } else if ("pen".equals(type)) {
  18. return new Pen();
  19. }
  20. throw new IllegalArgumentException("Invalid product type: " + type);
  21. }
  22. }
  23. // 定义抽象工厂接口
  24. abstract class AbstractFactory {
  25. public Product createProduct(String type) {
  26. // 这里实现具体创建产品的逻辑
  27. // 对于上述案例,我们直接返回具体的子类对象
  28. return new ConcreteFactory1().createProduct(type);
  29. }
  30. }
  31. // 实现具体的客户端代码
  32. public class Client {
  33. public static void main(String[] args) {
  34. AbstractFactory factory = new ConcreteFactory1();
  35. Product book = factory.createProduct("book");
  36. System.out.println("Book Name: " + book.getName());
  37. // 创建笔的逻辑相似,这里省略
  38. Product pen = factory.createProduct("pen");
  39. System.out.println("Pen: " + pen);
  40. }
  41. }

在这个案例中,我们定义了一个抽象产品类Product和一个抽象工厂接口AbstractFactory。然后创建了具体的工厂类ConcreteFactory1和客户端代码。

当在客户端调用factory.createProduct(type)时,会根据type参数选择合适的子类对象进行创建。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,142人围观)

还没有评论,来说两句吧...

相关阅读