Abstract Factory(抽象工厂)实践
2016-12-07 23:25
375 查看
Abstract Factory(抽象工厂)
抽象工厂,按字面含义来理解,就是一个不存在的工厂,只是抽象出来的一个概念工厂,反应到代码中,可以理解为定义了固定操作接口的一个抽象类,这个类不完成任何事(特殊情况也可以完成某些生产操作),而是交由它的子类来进行实际的操作。
package test8;
class A {
}
class B {
}
/**
* 抽象工厂设计模式
* @author Administrator
*
*/
abstract class BFactory {
public abstract A productA();
public abstract B productB();
}
/**
* 子工程1
* @author Administrator
*
*/
class BXfactory extends BFactory {
@Override
public A productA() {
// TODO Auto-generated method stub
return new A();
}
@Override
public B productB() {
// TODO Auto-generated method stub
return new B();
}
}
/**
* 子工厂2
* @author Administrator
*
*/
class BCfactory extends BFactory {
@Override
public A productA() {
// TODO Auto-generated method stub
return new A();
}
@Override
public B productB() {
// TODO Auto-generated method stub
return new B();
}
}
/**
* 抽象工厂模式测试类
* @author suifeng
*
*/
public class AbstractDS {
static void show(BFactory bf) {
bf.productA();
bf.productB();
}
public static void main(String[] args) {
show(new BCfactory());
show(new BXfactory());
}
}
抽象工厂,按字面含义来理解,就是一个不存在的工厂,只是抽象出来的一个概念工厂,反应到代码中,可以理解为定义了固定操作接口的一个抽象类,这个类不完成任何事(特殊情况也可以完成某些生产操作),而是交由它的子类来进行实际的操作。
package test8;
class A {
}
class B {
}
/**
* 抽象工厂设计模式
* @author Administrator
*
*/
abstract class BFactory {
public abstract A productA();
public abstract B productB();
}
/**
* 子工程1
* @author Administrator
*
*/
class BXfactory extends BFactory {
@Override
public A productA() {
// TODO Auto-generated method stub
return new A();
}
@Override
public B productB() {
// TODO Auto-generated method stub
return new B();
}
}
/**
* 子工厂2
* @author Administrator
*
*/
class BCfactory extends BFactory {
@Override
public A productA() {
// TODO Auto-generated method stub
return new A();
}
@Override
public B productB() {
// TODO Auto-generated method stub
return new B();
}
}
/**
* 抽象工厂模式测试类
* @author suifeng
*
*/
public class AbstractDS {
static void show(BFactory bf) {
bf.productA();
bf.productB();
}
public static void main(String[] args) {
show(new BCfactory());
show(new BXfactory());
}
}
相关文章推荐
- Java实践之路(设计模式)——工厂模式(抽象工厂)
- 设计模式讲解与代码实践(一)——抽象工厂
- ASP.NET&Spring.NET&NHibernate最佳实践(五)——第3章人事子系统(2)
- 提高DB2存储过程性能和健壮性的3个最佳实践.
- 敏捷开发实践总结(四):职责分工
- Unity3D Shader编程实践——“Hello Shader"
- 如何管理软件开发项目?一些实践原则!
- 第八周上机实践项目1——建立顺序串的算法库
- 【实践报告】Linux基础实践一
- 第八周实践谁是小偷
- CentOS7安装MariaDB成功的实践
- 《Python机器学习及实践》----无监督学习之数据聚类
- MVVM探索:从ViewModel关闭Window的最佳实践
- ASP.NET&Spring.NET&NHibernate最佳实践(九)——第4章权限子系统(2)
- 实施IT治理:方法论、模型、全球最佳实践
- 译文:SQL Azure客户端-瞬态错误处理最佳实践
- 你的单元测试有多稳定?提升自动测试质量的最佳实践
- 《C语言及程序设计》实践参考——分支嵌套流程图-三等级成绩
- Linux IPC实践(3) --具名FIFO
- 第十一周实践项目3-警察和厨师