设计模式之抽象工程

抽象工厂模式解释: (此段模式分析有参考其他博文 因为已忘出去,故而没有标出链接地址)

抽象工厂模式(Abstact Factory Pattern)是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。

抽象工厂中方法对应产品结构,具体工厂对应产品族

英文定义为:Provide an interface forcreating families of related or dependent objects without specifying theirconcrete classes.

抽象工厂模式的UML图:

抽象工厂模式模式中包含的角色及其相应的职责如下:

抽象工厂(Creator)角色:抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。

具体工厂(Concrete Creator)角色: 具体工厂类是抽象工厂的一个实现,负责实例化某个产品族中的产品对象。

抽象(Product)产品角色:抽象模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

具体产品(Concrete Product)角色:抽象模式所创建的具体实例对象。

代码实现:

public interface Product {
    void show();
}
public class ProductA implements Product {

	@Override
	public void show() {
		// TODO Auto-generated method stub
		System.out.println("ProductA");
		
	}

}
public class ProductB implements Product {
	@Override
	public void show() {
		System.out.println("ProductB");
	}
}


public interface Factory {
	Product createProduct();
}
public class FactoryA implements Factory{
	@Override
	public Product createProduct() {
		return new ProductA();
	}
}


public class FactoryB implements Factory{
	@Override
	public Product createProduct() {
		return new ProductB();
	}
}

测试代码:

public class FactoryTest {

	@Test
	public void testCreateProduct() {
		Product product;
		Factory factory;
		
		factory=new  FactoryA();
		product=factory.createProduct();
		product.show();
		
		factory=new FactoryB();
		product=factory.createProduct();
		product.show();
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值