工厂模式是一种常用的面向对象设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当我们创建对象时,我们不需要知道具体的实现细节,只需要知道所创建的对象的类型即可。这样可以将对象的创建过程封装起来,提高了代码的可扩展性和可维护性。 ### 一般工厂模式 一般工厂模式,也称为抽象工厂模式,它定义了一个创建对象的接口,但允许子类决定实例化哪一个类。这种类型的设计模式属于创建型模式,它提供了创建对象的最佳方式。在一般工厂模式中,我们创建一个工厂类,该类负责创建对象,但具体创建哪个对象由子类决定。这样,我们可以使用相同的工厂方法来创建不同的对象,而无需关心它们的具体实现。 ```java // 抽象产品接口 public interface Product { void doSomething(); } // 具体产品类1 public class ConcreteProduct1 implements Product { @Override public void doSomething() { System.out.println("ConcreteProduct1 doing something..."); } } // 具体产品类2 public class ConcreteProduct2 implements Product { @Override public void doSomething() { System.out.println("ConcreteProduct2 doing something..."); } } // 工厂接口 public interface Factory { Product createProduct(); } // 具体工厂类1 public class ConcreteFactory1 implements Factory { @Override public Product createProduct() { return new ConcreteProduct1(); } } // 具体工厂类2 public class ConcreteFactory2 implements Factory { @Override public Product createProduct() { return new ConcreteProduct2(); } } // 客户端代码 public class Client { public static void main(String[] args) { Factory factory = new ConcreteFactory1(); // 或者 ConcreteFactory2 Product product = factory.createProduct(); product.doSomething(); } } ``` ### 静态工厂模式 静态工厂模式不涉及继承,而是通过静态方法来创建对象。这种方式更简单,不需要创建工厂类的实例,直接调用静态方法即可创建对象。静态工厂模式通常用于返回已经存在的对象或者创建一些复杂对象,这些对象的创建过程可能需要进行一些复杂的计算或者依赖于特定的环境。 ```java // 静态工厂模式中的类 public class StaticProduct { private StaticProduct() {} // 私有化构造器,防止外部直接实例化 // 静态工厂方法 public static StaticProduct createProduct() { // 可以在此添加逻辑,比如根据条件返回不同类型的实例 return new StaticProduct(); } public void doSomething() { System.out.println("StaticProduct doing something..."); } } // 客户端代码 public class Client { public static void main(String[] args) { StaticProduct product = StaticProduct.createProduct(); product.doSomething(); } } ``` 总结来说,工厂模式是软件设计模式中的一个重要组成部分,它提供了创建对象的一种间接方式,使得代码更加灵活,易于扩展。在实际项目中,无论是简单的一般工厂模式还是静态工厂模式,都可以根据需求选择合适的方式来实现对象的创建。理解并熟练运用工厂模式,对于提升代码质量和可维护性具有重要意义。























































- 1


- 粉丝: 9
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2025新媒体运营专业考试必考试题及答案.docx
- 2025新生儿护理常规试题(附含答案).docx
- 2025行测题库与完整答案.docx
- 2025学习重要讲话精神的心得体会.docx
- 2025新团员入团考试试题与答案.docx
- 2025新团员入团考试试题库与答案.docx
- 2025新版中国移动笔试题库与答案.docx
- 2025学校食堂工作人员考核细则大全.docx
- 2025学校食堂工作人员考核细则归纳.docx
- 2025学习贯彻全国教育工作会议精神心得体会.docx
- 2025新版中国移动笔试题库及答案.docx
- 2025新团员入团考试题(答案).docx
- 2025新统计法解读继续教育题库(含答案).docx
- 2025医院感染诊断标准试题及答案.docx
- 2025医院感染诊断标准试题和答案.docx
- 2025医院感染基本知识试题附含答案.docx


