`

创建型——工厂模式(抽象工厂)

阅读更多

UML图

 

特例图

 

以图的实现代码:

package com.lwf.abstractfactory;

public interface CPU {

	void getName();
}

 

 

package com.lwf.abstractfactory;

public class MacCPU implements CPU {

	public void getName(){
		System.out.println("MacCPU");
	}
}

 

 

package com.lwf.abstractfactory;

public class PcCPU implements CPU {

	public void getName(){
		System.out.println("PcCPU");
	}
}

 

 

package com.lwf.abstractfactory;

public interface RAM {

	void printName();
}

 

 

package com.lwf.abstractfactory;

public class MacRAM implements RAM {

	public void printName() {
		System.out.println("MacRAM");
	}

}

 

 

package com.lwf.abstractfactory;

public class PcRAM implements RAM {

	public void printName() {
		System.out.println("PcRAM");
	}

}

 

 

package com.lwf.abstractfactory;

public abstract class ComputerProducer {

	abstract CPU createCPU();
	abstract RAM createRAM(); 
}

 

 

package com.lwf.abstractfactory;

public class MacProducer extends ComputerProducer {

	CPU createCPU() {
		return new MacCPU();
	}

	RAM createRAM() {
		return new MacRAM();
	}

}

 

 

package com.lwf.abstractfactory;

public class PcProducer extends ComputerProducer {

	CPU createCPU() {
		return new PcCPU();
	}

	RAM createRAM() {
		return new PcRAM();
	}

}

 

 

测试类:

package com.lwf.abstractfactory;

public class Test {

	public static void main(String[] args) {

		ComputerProducer p = new MacProducer();
		CPU c = p.createCPU();
		RAM r = p.createRAM();
		c.getName();
		r.printName();
		
		p = new PcProducer();
		c = p.createCPU();
		r = p.createRAM();
		c.getName();
		r.printName();
	}

}

 

结果:

MacCPU
MacRAM
PcCPU
PcRAM

 

分享到:
评论

相关推荐

    (创建模式 上)设计模式——工厂、抽象工厂 C++/Python3实现

    简介 设计模式是为了解决一些出现的问题设计的解决方案。是长时间经验的总结,是根据...工厂模式 在类中实现一个接口创建指定对象,使一个类的实例化延迟到了子类。简单来说把类的创建都封装起来,只需要调用一个子类

    design-pattern-java.pdf

    六个创建型模式 六个创建型模式 简单工厂模式-Simple Factory Pattern 工厂三兄弟之简单工厂模式(一) 工厂三兄弟之简单工厂模式(二) 工厂三兄弟之简单工厂模式(三) 工厂三兄弟之简单工厂模式(四) 工厂方法...

    抽象工厂模式 源代码

    抽象工厂的目的是要提供一个创建一系列相关或相互依赖对象的接口,而不需要指定它们具体的类。这种模式可以汽车制造厂所使用的金属冲压设备中找到。这种冲压设备可以制造汽车车身部件。同样的机械用于冲压不同的车型...

    设计模式--可复用面向对象软件的基础

    3.1 ABSTRACT FACTORY(抽象工厂)——对象创建型模式 3.2 BUILDER(生成器)——对象创建型模式 3.3 FACTORY METHOD(工厂方法)——对象创建型模式 3.4 PROTOTYPE(原型)——对象创建型模式 3.5 SINGLETON(单件...

    从模式讲到设计模式再到面向对象设计模式

    目前最有影响力的书籍是:《设计模式:可复用面向对象软件的基础》,它共编录了23种设计模式,分三大类别:创建型模式、结构型模式、行为模式,其中有一种创建型模式是抽象工厂设计模式。 在学习抽象工厂设计模式...

    设计模式可复用面向对象软件的基础.zip

    3.1 Abstract Factory(抽象工厂)— 对象创建型模式 57 3.2 Builder(生成器)—对象创建型 模式 63 3.3 Factory Method(工厂方法)— 对象创建型模式 70 3.4 Prototype(原型)—对象创建型 模式 87 3.5 ...

    深入浅出设计模式(中文版)

    3.3AbstractFactoryPattern(抽象工厂模式) 45 3.3.1定义 45 3.3.2现实例子——扩展了的兵工厂 48 3.3.3C#实例——大陆生态系统 49 3.3.4Java实例——电脑产品 52 3.3.5优势和缺陷 57 3.3.6应用情景 57 3.4...

    深入浅出设计模式(中文版电子版)

    3.3AbstractFactoryPattern(抽象工厂模式) 45 3.3.1定义 45 3.3.2现实例子——扩展了的兵工厂 48 3.3.3C#实例——大陆生态系统 49 3.3.4Java实例——电脑产品 52 3.3.5优势和缺陷 57 3.3.6应用情景 57 3.4...

    24种设计模式介绍与6大设计原则

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...

    设计模式Demo

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...

    OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码

    书中应用GoF的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在CocoaTouch框架中的工作方式。 《Objective-C编程之道:iOS设计...

    管理系统javasal源码-Design-Patterns-Demo:超全的设计模式——理论+实现demo

    Pattern)抽象工厂模式(Abstract Factory Pattern)单例模式(Singleton Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern) 2 结构型模式:这些设计模式关注类和对象的组合。继承的概念被用来...

    C#23种设计模式_示例源代码及PDF

    工厂方法模式: 而是将具体创建的工作交给子类去做, 工厂方法模式 核心工厂类不再负责所有产品的创建, 成为一个抽象工厂角色, 仅负责给出具体工厂类必须实现的接口, 而不接触哪一个产品类应 当被实例化这种细节...

    C#23种设计模式

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. ...

    asp.net知识库

    泛型技巧系列:用泛型打造可复用的抽象工厂 体验.net2.0的优雅(四):Provider、策略、控制反转和依赖注入 泛型最佳实践 asp.net 2.0下嵌套masterpage页的可视化编辑 C# 2.0与泛型 动态调用对象的属性和方法——...

    百度地图毕业设计源码-Design-Patterns:设计模式

    百度地图毕业设计源码 设计模式(Design Patterns)[原文地址:] ——可复用面向对象软件的基础 ...创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器

    php网络开发完全手册

    5.7.3 工厂模式(Factory Pattern) 83 5.8 接口与抽象类 86 5.8.1 接口的定义 86 5.8.2 单一接口的实现 87 5.8.3 多重接口的实现 87 5.8.4 抽象类 88 5.9 小结 90 第6章 文件系统与文本数据操作 91 6.1 PHP中目录...

    javaSE代码实例

    第10章 构造器——对象制造的工厂 176 10.1 基础知识 176 10.1.1 编写构造器的语法规则 176 10.1.2 访问限制修饰符与构造器 176 10.1.3 构造器与返回类型 179 10.2 创建对象 180 10.3 重载构造器 181 ...

Global site tag (gtag.js) - Google Analytics