1 抽象工厂(Abstract Factory)模式

本文深入解析抽象工厂模式中的关键组件:创建者接口和具体创建者类,以及它们创建的不同产品类实例。通过代码示例,详细阐述了如何实现和使用抽象工厂模式来解耦创建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.类图


 

2.类

 

   Creator

package com.javapatterns.abstractfactory;

public interface Creator {
	public ProductA factoryA();

	public ProductB factoryB();
}

   ProductA

package com.javapatterns.abstractfactory;

public interface ProductA {

}

    ProductB

package com.javapatterns.abstractfactory;

public interface ProductB {

}
 
package com.javapatterns.abstractfactory;

public class ConcreteCreatorA implements Creator {

	public ProductA factoryA() {
		// TODO Auto-generated method stub
		return new ConcreteProductA1();
	}

	public ProductB factoryB() {
		// TODO Auto-generated method stub
		return new ConcreteProductB1();
	}

}
 
package com.javapatterns.abstractfactory;

public class ConcreteCreatorB implements Creator {

	public ProductA factoryA() {
		// TODO Auto-generated method stub
		return new ConcreteProductA2();
	}

	public ProductB factoryB() {
		// TODO Auto-generated method stub
		return new ConcreteProductB2();
	}

}
 
package com.javapatterns.abstractfactory;

public class ConcreteProductA1 implements ProductA{

}
 
package com.javapatterns.abstractfactory;

public class ConcreteProductA2 implements ProductA{

}

 

package com.javapatterns.abstractfactory;

public class ConcreteProductB1 implements ProductB{

}

 

 

package com.javapatterns.abstractfactory;

public class ConcreteProductB2 implements ProductB{

}

测试代码:

package com.javapatterns.abstractfactory;

import util.S;


public class test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ConcreteCreatorA ConcreteCreatorA = new ConcreteCreatorA();
		ProductA productA1 = ConcreteCreatorA.factoryA();
		ProductB productB1 = ConcreteCreatorA.factoryB();
		
		ConcreteCreatorB ConcreteCreatorB = new ConcreteCreatorB();
		ProductA productA2 = ConcreteCreatorB.factoryA();
		ProductB productB2 = ConcreteCreatorB.factoryB();
		S.s(productA1);
		S.s(productA2);
		S.s(productB1);
		S.s(productB2);
	}

}

 z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值