针对问题:当要创建的产品种类很多,并且会随着时间的推移会不断改变时。可以将这些变化的部分抽离出来作为一个继承结构,运用多态的动态性来替换本来的改变。
工厂方法模式结构图:
工厂方法实现代码:
/**
* 产品接口
* @author bruce
*
*/
public abstract class Product {
public abstract void description();
}
/**
* 创建者接口
* @author bruce
*
*/
public abstract class Creator {
public abstract Product create();
}
/**
* 产品1
* @author bruce
*
*/
public class ConcreteProduct1 extends Product{
@Override
public void description() {
System.out.println("产品1");
}
}
/**
* 产品2
* @author bruce
*
*/
public class ConcreteProduct2 extends Product{
@Override
public void description() {
// TODO Auto-generated method stub
System.out.println("产品2");
}
}
/**
* 创建类1
* @author bruce
*
*/
public class ConcreteCreator1 extends Creator{
@Override
public Product create() {
// TODO Auto-generated method stub
return new ConcreteProduct1();
}
}
/**
* 创建类2
* @author bruce
*
*/
public class ConcreteCreator2 extends Creator{
@Override
public Product create() {
// TODO Auto-generated method stub
return new ConcreteProduct2();
}
}
/**
* 测试
* @author bruce
*/
public class Client {
public static void main(String[] args) {
Creator creator=new ConcreteCreator1();
Product product=creator.create();
product.description();//产品1
creator=new ConcreteCreator2();
product=creator.create();
product.description();//产品2
}
}
- 大小: 23 KB
分享到:
相关推荐
六个创建型模式 简单工厂模式-Simple Factory Pattern 工厂三兄弟之简单工厂模式(一) 工厂三兄弟之简单工厂模式(二) 工厂三兄弟之简单工厂模式(三) 工厂三兄弟之简单工厂模式(四) 工厂方法模式-Factory ...
在这个名为"Designpattern.zip"的压缩包中,我们聚焦于Java编程语言中的一个关键设计模式——工厂模式。这个模式属于创建型模式,它提供了一种创建对象的最佳方式,旨在简化对象的创建过程,并提高代码的可读性和可...
3. **抽象工厂模式(Abstract Factory)**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。这在需要一组相关对象时非常有用,如在不同的操作系统中创建相似的用户界面元素。 4. **建造者...
1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。通过引入一个工厂类,开发者可以隔离产品类的实例化过程,使代码更加灵活和易于维护。 2. **抽象工厂模式**:当需要创建一系列...
《Design Pattern实验指导手册2》主要探讨了设计模式中的创建型模式——工厂方法(Factory Method)。这个模式是软件设计中非常基础且实用的一种模式,它主要用于解决对象的创建问题,提供了一种创建对象的最佳方式...
《Design Pattern 实验指导手册1》是一份详细阐述设计模式的实践教程,专注于创建型模式——简单工厂模式。本手册旨在帮助读者理解并掌握如何在实际编程中应用设计模式,提高代码的可读性、可维护性和灵活性。 简单...
为了帮助 .NET 开发者更好地理解和应用这些设计模式,《Head First 设计模式》为 .NET 2.0 特别推出了一个配套文档——《设计模式框架》(Design Pattern FrameworkTM),该文档涵盖了原书中介绍的所有设计模式,并...
简单工厂模式提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。这种模式简化了客户端代码,并使其与具体的实现细节解耦。 #### 2.2 工厂方法模式 工厂方法模式定义了一个创建对象的接口,...
文件列表中的`DesignPattern`很可能包含了实现这些模式的Java源代码,可能有如下文件结构: - `Factory` 包:包含简单工厂模式或工厂方法模式的实现 - `Product.java`:产品的抽象类或接口 - `ConcreteProduct1....
- 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。 - 构建者模式(Builder):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 ...
1. 创建型模式:这类模式主要关注对象的创建过程,如单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。它们提供了创建...
虽然对于初学者来说,面对英文资料可能会感到困难,但“Design Pattern In C# (英文).pdf”这本书为读者提供了23种经典设计模式的详细解释,包括了它们的概念、实现方式以及在C#中的应用实例。尽管阅读时可能会遇到...
本压缩包"design-pattern(设计模式,包括创建型、结构型、行为型三大类共23种常见的设计模式和J2EE常见设计模式等).zip"提供了全面的设计模式学习资源,适用于初学者和有经验的开发者,帮助他们提升软件设计能力。...
在`designpattern`这个压缩包中,很可能包含了以上各种设计模式的代码示例。通过学习和理解这些代码,你可以更好地掌握如何在实际项目中应用设计模式,提升代码质量和可维护性。每一个设计模式都有其适用场景,理解...
designpattern 设计模式 觉得看总结太单调,fork下来看看代码吧。 前情提要——简单工厂 简单工厂不是一个标准设计模式。 让客户端只知道接口、不知道具体实现,而设计工厂方法来生成具体实现的实例。把new Impl()放...
**设计模式**(Design Patterns)是软件工程中的一个重要概念,它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。本章节将从多个角度对设计模式进行深入探讨。 #### 二、设计模式的基本定义 ...
- 抽象工厂模式(Abstract Factory):提供一个接口,用于创建相关或依赖对象的家族,而无需指定具体类。 - 建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。...