抽象工厂(二)

转载 2013年12月06日 09:43:49
public interface CPUApi {
	public void caculate();
}
public interface MainBoardApi {
	  void installCPU();
}

public class AmdCpu implements CPUApi {
    private int pins;
    public AmdCpu(int pins){
    	this.pins = pins;
    }
	@Override
	public void caculate() { 
        System.out.println("AMD CPU pins = " + pins);
	} 
}

public class IntelCpu implements CPUApi { 
	private int pins = 0;
	public IntelCpu(int pins){
		this.pins = pins;
	} 
	@Override
	public void caculate() { 
		System.out.println("Intel CPU , pins = " + pins);
	} 
}

public class GAMainBoard implements MainBoardApi {
    private int cpuholes;
    public GAMainBoard(int cpuholes){
    	this.cpuholes = cpuholes;
    }
	@Override
	public void installCPU() {
		 System.out.println(" GAMainBoard cpuholes = "+ cpuholes);
	} 
}

public class MSIMainBoard implements MainBoardApi {
    private int cpuholes ;
    public MSIMainBoard(int cpuholes){
    	this.cpuholes= cpuholes;
    }
	 
	@Override
	public void installCPU() {
		 System.out.println("MSIMainBoard  cpuholes" + cpuholes);
	} 
}

public interface Factory {
     public CPUApi createCPUApi();
     public MainBoardApi createMainBoardApi();
}


public class SchemaOne implements Factory { 
	@Override
	public CPUApi createCPUApi() { 
		return new IntelCpu(1156);
	} 
	@Override
	public MainBoardApi createMainBoardApi() { 
		return new GAMainBoard(1156);
	} 
}

public class SchemaTwo implements Factory{ 
	@Override
	public CPUApi createCPUApi() { 
		return new AmdCpu(939);
	} 
	@Override
	public MainBoardApi createMainBoardApi() { 
		return new MSIMainBoard(939);
	} 
}

public class Engineer {
     private CPUApi cpu;
     private MainBoardApi mainBoard;
     
     public void makeComputer(Factory schema){
    	 this.cpu = schema.createCPUApi();
    	 this.mainBoard = schema.createMainBoardApi();
    	 this.cpu.caculate();
    	 this.mainBoard.installCPU();
     }
}

public class Client { 
	public static void main(String[] args) {
		 Engineer engi = new Engineer();
		 SchemaOne schema = new SchemaOne();
		 engi.makeComputer(schema);
	} 
}












JAVA设计模式之抽象工厂模式

本文属于23种设计模式系列。 继续前面简单工厂模式和工厂方法模式的例子,以汽车配件制造介绍抽象工厂模式。...
  • jason0539
  • jason0539
  • 2015年04月11日 08:26
  • 51556

C++设计模式——抽象工厂模式(含实例)

伟创力(世界500强企业),公司有笔记本生产车间、电视机车间、空调车间、电话生产等车间,各生产车间各行其责,生产出不同类型的产品。伟创力不再是生产单一产品的企业,而是生产出多种不同类型的产品,各产品属...
  • swqqcs
  • swqqcs
  • 2014年09月08日 20:35
  • 1799

设计模式——抽象工厂 Java源代码

抽象工厂 + Java源代码。本程序改编自《Head First Design Patterns》(简称HF )中的关于Pizza的例子...
  • u013390476
  • u013390476
  • 2015年12月24日 20:06
  • 1662

DRP项目(十):抽象工厂加反射框架实例(二)

抽象工厂加反射详细运行流程:        代码实例: 建立一个配置文件beans-config.xml。注:分为两部分一部分是创建bll层标签和一个创建Dal层的标签,这样就可以分开创建B...
  • qiulongtianshi
  • qiulongtianshi
  • 2012年02月20日 11:22
  • 1409

JAVA设计模式二--Abstract Factory(抽象工厂)

抽象工厂模式: 提供一个创建一系列相关活相互依赖对象的接口,而无需指定他们具体的类。 举2个例子: 1.BOSS要求提供JDBC,Hibernate,Ibatis等多套数据库操作解决方案,能够无...
  • hfmbook
  • hfmbook
  • 2012年06月20日 15:15
  • 1127

vb.net版机房收费——助你学会七层架构(二)反射+抽象工厂

简单应用反射+抽象工厂设计D层,抽象SqlHelper,手把手叫你,实战机房收费系统。...
  • u010540106
  • u010540106
  • 2014年06月25日 21:10
  • 2307

【设计模式】不就是换DB嘛(二)——升级版抽象工厂+反射+配置文件

上一篇博客和大家分享了抽象工厂在实践管理系统时能为我们带来的好处,同时也给大家提了抽象模式更改DB的几个问题,那么增加功能时有什么方法不需要更改添加那么多类呢? 换数据库的时候可不可以不更改程序呢? ...
  • srk950606
  • srk950606
  • 2016年02月17日 10:04
  • 591

JAVA设计模式二:--Abstract Factory(抽象工厂)

点击打开转载处链接 抽象工厂模式: 提供一个创建一系列相关活相互依赖对象的接口,而无需指定他们具体的类。 举2个例子: 1.BOSS要求提供JDBC,Hibernate,Ibatis等多套数据...
  • SupportDream
  • SupportDream
  • 2013年05月02日 17:09
  • 293

设计模式(二)----- 抽象工厂(AbstractFactory)----(JAVA版)

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 适用性: 1.一个系统要独立于它的产品的创建,组合和表示时 2.一个系统要由多个产品系列中的一个来配置时 ...
  • u012422855
  • u012422855
  • 2016年01月28日 11:19
  • 267

抽象工厂的演示案例

  • 2013年07月31日 09:35
  • 171KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:抽象工厂(二)
举报原因:
原因补充:

(最多只允许输入30个字)