package abstractFactory;
public interface Creator {
/*
* 产品等级结构A的工厂方法
*/
public ProductA factoryA();
/*
* 产品等级结构B的工厂方法
*/
public ProductB factoryB();
}
package abstractFactory;
public class ConcreteCreator1 implements Creator {
/*
* 产品等级结构A的工厂方法
*/
public ProductA factoryA() {
return new ProductA1();
}
/*
* 产品等级结构B的工厂方法
*/
public ProductB factoryB() {
return new ProductB1();
}
}
package abstractFactory;
public class ConcreteCreator2 implements Creator {
/*
* 产品等级结构A的工厂方法
*/
public ProductA factoryA() {
return new ProductA2();
}
/*
* 产品等级结构B的工厂方法
*/
public ProductB factoryB() {
return new ProductB2();
}
}
package abstractFactory;
public interface ProductA {
}
package abstractFactory;
import static logger.Log.debug;
public class ProductA1 implements ProductA {
/*
* 构造子
*/
public ProductA1(){
debug("ProductA1");
}
}
package abstractFactory;
import static logger.Log.debug;
public class ProductA2 implements ProductA {
/*
* 构造子
*/
public ProductA2() {
debug("ProductA2");
}
}
package abstractFactory;
public interface ProductB {
}
package abstractFactory;
import static logger.Log.debug;
public class ProductB1 implements ProductB {
/*
* 构造子
*/
public ProductB1(){
debug("ProductB1");
}
}
package abstractFactory;
import static logger.Log.debug;
public class ProductB2 implements ProductB {
/*
* 构造子
*/
public ProductB2(){
debug("ProductB2");
}
}
package abstractFactory;
/*
* 客户端测试
*/
public class Client {
/*
* 工厂
*/
private static Creator creator1,creator2;
/*
* A等级产品
*/
@SuppressWarnings("unused")
private static ProductA producta1,producta2;
/*
* B等级产品
*/
@SuppressWarnings("unused")
private static ProductB productb1,productb2;
public static void main(String[] args){
creator1 = new ConcreteCreator1();
creator2 = new ConcreteCreator2();
/*
* 产品族1
*/
producta1 = creator1.factoryA();
productb1 = creator1.factoryB();
/*
* 产品族2
*/
producta2 = creator2.factoryA();
productb2 = creator2.factoryB();
}
}
- 大小: 18.2 KB
- 大小: 32.5 KB
- 大小: 33.6 KB
分享到:
相关推荐
**Java设计模式——抽象工厂** 在软件工程中,设计模式是一种在特定场景下解决常见问题的模板或蓝图。抽象工厂模式是设计模式中的一种结构型模式,它提供了一个创建对象族的接口,但允许子类决定实例化哪一个类。这...
例如,代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)、适配器模式(Adapter Pattern)、模板方法模式(Template ...
Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式、桥接模式、组合模式、装饰模式、享元模式、代理模式、命令模式、解释器模式、访问者模式、迭代子...
在这个压缩包中,包含了三种工厂模式的C++实现:简单工厂模式、工厂方法模式以及抽象工厂模式。让我们一一探讨这些模式。 1. 简单工厂模式: 简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。...
在Java中,抽象工厂模式的实现稍微不同,因为Java没有显式的接口关键字,而是通过抽象类或者接口来定义抽象工厂。假设我们有`AbstractFactory`类或接口,其中包含`createProductA()`和`createProductB()`等方法。...
2. 创建型模式:包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。这些模式主要关注对象的创建过程,使得代码更加灵活,易于管理和测试。 3. 结构型模式:包括适配器模式、桥接模式、组合模式、...
- 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 工厂模式在IT行业中有着广泛应用,比如在框架设计、数据库连接管理、GUI组件创建等方面。通过引入工厂模式,可以降低系统...
抽象工厂模式是设计模式中的一种,它属于创建型模式。在抽象工厂模式中,接口被用来创建一组相关或相互依赖的对象,而无需指定它们具体的类。抽象工厂模式是工厂方法模式的一种扩展,它用来生产一系列相关或相互依赖...
- 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。 - 建造者模式:将复杂对象的构建与其表示分离,使同样的构建过程能创建不同的表示。 - 原型模式:通过复制已有对象来创建...
抽象工厂模式(Abstract Factory)** - **定义**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 - **应用场景**:系统中有多于一个的产品族,而每次只使用其中的一个;系统提供一个产品...
- 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而无需指定具体类。 - 建造者模式:将复杂对象的构建与其表示分离,使得相同的构建过程可以创建不同的表示。 - 组合模式:允许你将对象组合成树形...
设计模式通常分为三类:创建型模式(如工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式),结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式、享元模式)以及行为型模式(如...
这类模式关注对象的创建过程,包括单例模式(Singleton)、工厂模式(Factory)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。它们提供了创建对象的不同策略,使代码更加灵活...
**Java设计模式——简单工厂** 简单工厂模式是软件设计模式中的一种基础模式,它属于创建型设计模式。在Java编程中,我们常常会遇到需要创建一系列相关或相互依赖的对象,而这些对象的创建过程可能会非常复杂。这时...
3. **抽象工厂(Abstract Factory)**:这是工厂方法模式的核心,它声明了创建产品对象的工厂方法。这个方法并不直接创建产品,而是由其子类来实现具体的创建过程。 4. **具体工厂(Concrete Factory)**:具体工厂...
2. **创建型模式**:包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。这些模式关注对象的创建,帮助我们处理复杂对象的构造过程,同时保持代码的灵活性。 3. **结构型模式**:包括适配器模式、...
工厂模式有三种主要形式:简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式是最基础的形式,它包含一个静态方法用于创建对象。工厂方法模式则将对象的创建委托给子类,增加了灵活性,使得添加新产品时无需...
3. **抽象工厂模式(Abstract Factory Pattern)**:为创建一组相关或相互依赖的对象提供一个接口,而无需指定它们的具体类。 4. **建造者模式(Builder Pattern)**:将一个复杂对象的构建与其表示分离,使得同样...
- **抽象工厂**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 - **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 - **单例模式**:保证一个...
- **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。适用于产品族的场景,可以隔离产品对象和客户端之间的耦合。 - **建造者模式**:将复杂对象的构建与其表示分离,使得...