java模式--抽象工厂模



 

 

 

 

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();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值