java设计模式:抽象工厂模式
原创
©著作权归作者所有:来自51CTO博客作者Lucky麒麟的原创作品,请联系作者获取转载授权,否则将追究法律责任
抽象工厂模式:
概念: 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。
在抽象工厂模式结构图中包含如下几个角色:
- AbstractFactory(抽象工厂):它声明了一组用于创建一族产品的方法,每一个方法对应一种产品。
- ConcreteFactory(具体工厂):它实现了在抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。
- AbstractProduct(抽象产品):它为每种产品声明接口,在抽象产品中声明了产品所具有的业务方法。
- ConcreteProduct(具体产品):它定义具体工厂生产的具体产品对象,实现抽象产品接口中声明的业务方法。
/**
* 抽象工厂模式
*/
/**
* 工厂的接口
*/
interface HumanFactory{
MakeMoney getMakeMoney();
}
/**
* 赚钱的接口
*/
interface MakeMoney{
void doMakeMoney();
}
/**
* 分别实现男人和女人的接口实现
*/
class ManFactory implements HumanFactory{
@Override
public MakeMoney getMakeMoney() {
return new ManMakeMoney();
}
}
class WomanFactory implements HumanFactory{
@Override
public MakeMoney getMakeMoney() {
return new WomanMakeMoney();
}
}
/**
* 分别实现男人和女人的接口实现
*/
class ManMakeMoney implements MakeMoney{
@Override
public void doMakeMoney() {
System.out.println("男人赚钱!");
}
}
class WomanMakeMoney implements MakeMoney{
@Override
public void doMakeMoney() {
System.out.println("女人赚钱!");
}
}
public class Factory {
public static void main(String[] args) {
HumanFactory manMake = new ManFactory();
manMake.getMakeMoney().doMakeMoney();
HumanFactory womanMake = new WomanFactory();
womanMake.getMakeMoney().doMakeMoney();
}
}