抽象工厂
抽象工厂(Abstract Factory)
Intent
提供一个接口,用于创建相关的对象家族
Class Diagram
抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂方法模式只是用于创建一个对象,这和抽象工厂模式有很大的不同。
抽象工厂模式用到了工厂方法模式来创建单一对象抽象工厂中的createProductA()和createProductB()方法都是让子类来实现,这两个方法单独来看就是在创建一个对象,这符合工厂方法模式的定义。
而创建对象的家族这一概念体现在客户中,客户端要通过抽象工厂同时调用两个方法来创建出两个对象,在这里这两个对象就有很大的相关性,客户端需要同时创建出这两个对象。
从高层次来看,抽象工厂使用了组合,即客户组合了抽象工厂,而工厂方法模式使用了继承。
Implementation
公共类AbstractProductA {
}
公共类AbstractProductB {
}
公共类ProductA1扩展了抽象产品{ 0
}
公共类产品2扩展了抽象产品{ 0
}
公共类产品B1扩展了抽象产品B {
}
公共类产品B2扩展了抽象产品B {
}
公共抽象类抽象工厂(
抽象抽象产品a createProducA();
抽象抽象产品b createProducB();
}
公共类混凝土工厂一扩展了抽象工厂
抽象产品创建产品(){ 0
返回新的ProducT a1();
}
abstract ProducB createProducB(){ 0
返回新的ProducT B1();
}
}
公共类混凝土工厂2扩展了抽象工厂
抽象产品创建产品(){ 0
返回新的ProducT a2();
}
abstract ProducB createProducB(){ 0
返回新的ProducT B2();
}
}
公共类客户端{
公共静态void main(String[]参数){ 0
抽象工厂抽象工厂=新的具体工厂1();
抽象工厂。createProducA();
abstractProducB ProducB=抽象工厂。createProducB();
//用productA和productB做点什么
}
}
JDK
javax。XML。解析器RS。documentbuilderfactory
javax。XML。转变。变压器厂
javax.xml.xpath.XPathFactory
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/79563.html