没有合适的资源?快使用搜索试试~ 我知道了~
3.java设计模式-创建者模式-抽象工厂模式.pdf
需积分: 22 0 下载量 177 浏览量
2019-07-04
10:06:06
上传
评论
收藏 644KB PDF 举报
温馨提示
试读
14页
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是抽象工厂模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
资源推荐
资源详情
资源评论
抽象工厂模式
场景问题:
举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的
配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU
和主板的问题。
事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等
问题,只有把这些问题都确定下来,才能确定具体的CPU。
同样,在选择主板的时候,也有一系列问题,比如品牌、芯片组、集成芯片、总线频率
等问题,也只有这些都确定了,才能确定具体的主板。
选择不同的CPU和主板,是每个客户在组装电脑的时候,向装机公司提出的要求,也就
是我们每个人自己拟定的装机方案。
在最终确定这个装机方案之前,还需要整体考虑各个配件之间的兼容性。比如:CPU和
主板,如果使用Intel的CPU和AMD的主板是根本无法组装的。因为Intel的CPU针脚数与
AMD主板提供的CPU插口不兼容,就是说如果使用Intel的CPU根本就插不到AMD的主板
中,所以装机方案是整体性的,里面选择的各个配件之间是有关联的。
对于装机工程师而言,他只知道组装一台电脑,需要相应的配件,但是具体使用什么样
的配件,还得由客户说了算。也就是说装机工程师只是负责组装,而客户负责选择装配所需
要的具体的配件。因此,当装机工程师为不同的客户组装电脑时,只需要根据客户的装机方
案,去获取相应的配件,然后组装即可。
使用简单工厂模式的解决方案:
考虑客户的功能,需要选择自己需要的CPU和主板,然后告诉装机工程师自己的选择,
接下来就等着装机工程师组装电脑了。
对装机工程师而言,只是知道CPU和主板的接口,而不知道具体实现,很明显可以用上
简单工厂模式或工厂方法模式。为了简单,这里选用简单工厂。客户告诉装机工程师自己的
选择,然后装机工程师会通过相应的工厂去获取相应的实例对象。
源代码:
CPU接口与具体实现
publicinterfaceCpu{
publicvoidcalculate();
}
publicclassIntelCpuimplementsCpu{
/**
*CPU的针脚数
*/
privateintpins=0;
publicIntelCpu(intpins){
this.pins=pins;
}
@Override
publicvoidcalculate(){
//TODOAuto-generatedmethodstub
System.out.println("IntelCPU的针脚数:"+pins);
}
}
publicclassAmdCpuimplementsCpu{
/**
*CPU的针脚数
*/
privateintpins=0;
privateintpins=0;
publicAmdCpu(intpins){
this.pins=pins;
}
@Override
publicvoidcalculate(){
//TODOAuto-generatedmethodstub
System.out.println("AMDCPU的针脚数:"+pins);
}
}
主板接口与具体实现
publicinterfaceMainboard{
publicvoidinstallCPU();
}
publicclassIntelMainboardimplementsMainboard{
/**
*CPU插槽的孔数
*/
privateintcpuHoles=0;
/**
*构造方法,传入CPU插槽的孔数
*@paramcpuHoles
*/
publicIntelMainboard(intcpuHoles){
this.cpuHoles=cpuHoles;
}
@Override
publicvoidinstallCPU(){
//TODOAuto-generatedmethodstub
System.out.println("Intel主板的CPU插槽孔数是:"+cpuHoles);
}
}
publicclassAmdMainboardimplementsMainboard{
/**
*CPU插槽的孔数
*/
privateintcpuHoles=0;
/**
*构造方法,传入CPU插槽的孔数
*@paramcpuHoles
*/
publicAmdMainboard(intcpuHoles){
this.cpuHoles=cpuHoles;
}
@Override
剩余13页未读,继续阅读
资源评论
晓亮无所不能
- 粉丝: 0
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功