- 浏览: 18460 次
- 性别:
- 来自: 西安
最新评论
下面以Mac和PC的CPU和RAM为例,代码如下:
Cpu.java
package com.flyingh.icpu; public interface Cpu { String cpuInfo(); }
MacCpu.java
package com.flyingh.cpu; import com.flyingh.icpu.Cpu; public class MacCpu implements Cpu { @Override public String cpuInfo() { // TODO Auto-generated method stub return "MacCpu"; } }
PcCpu.java
package com.flyingh.cpu; import com.flyingh.icpu.Cpu; public class PcCpu implements Cpu { @Override public String cpuInfo() { // TODO Auto-generated method stub return "PcCpu"; } }
Ram.java
package com.flyingh.iram; public interface Ram { String ramInfo(); }
MacRam.java
package com.flyingh.ram; import com.flyingh.iram.Ram; public class MacRam implements Ram { @Override public String ramInfo() { // TODO Auto-generated method stub return "MacRam"; } }
PcRam.java
package com.flyingh.ram; import com.flyingh.iram.Ram; public class PcRam implements Ram { @Override public String ramInfo() { // TODO Auto-generated method stub return "PcRam"; } }
Factory.java
package com.flyingh.ifactory; import com.flyingh.icpu.Cpu; import com.flyingh.iram.Ram; public interface Factory { Cpu createCpu(); Ram createRam(); }
MacFactory.java
package com.flyingh.factory; import com.flyingh.cpu.MacCpu; import com.flyingh.icpu.Cpu; import com.flyingh.ifactory.Factory; import com.flyingh.iram.Ram; import com.flyingh.ram.MacRam; public class MacFactory implements Factory { @Override public Cpu createCpu() { // TODO Auto-generated method stub return new MacCpu(); } @Override public Ram createRam() { // TODO Auto-generated method stub return new MacRam(); } }
PcFactory.java
package com.flyingh.factory; import com.flyingh.cpu.PcCpu; import com.flyingh.icpu.Cpu; import com.flyingh.ifactory.Factory; import com.flyingh.iram.Ram; import com.flyingh.ram.PcRam; public class PcFactory implements Factory { @Override public Cpu createCpu() { // TODO Auto-generated method stub return new PcCpu(); } @Override public Ram createRam() { // TODO Auto-generated method stub return new PcRam(); } }
Client.java
package com.flyingh.client; import com.flyingh.factory.MacFactory; import com.flyingh.factory.PcFactory; import com.flyingh.icpu.Cpu; import com.flyingh.ifactory.Factory; import com.flyingh.iram.Ram; public class Client { public static void main(String[] args) { Factory factory1=new MacFactory(); Factory factory2=new PcFactory(); Cpu macCpu=factory1.createCpu(); Ram macRam=factory1.createRam(); System.out.println(macCpu.cpuInfo());//MacCpu System.out.println(macRam.ramInfo());//MacRam Cpu pcCpu=factory2.createCpu(); Ram pcRam=factory2.createRam(); System.out.println(pcCpu.cpuInfo());//PcCpu System.out.println(pcRam.ramInfo());//PcRam } }
发表评论
文章已被作者锁定,不允许评论。
-
Interpreter
2011-11-24 21:19 852Interpreter Pattern:其意图是给定一个语言, ... -
Visitor
2011-11-24 17:37 663Visitor Pattern:表示一个作用于某对象结构中的各 ... -
Mediator
2011-11-24 16:22 668Mediator Pattern: 用一 ... -
Prototype
2011-11-24 11:32 613Prototype Pattern:就是通过复制现在已经存在的 ... -
Memento
2011-11-23 21:56 690Memento Pattern:在不破坏封闭的前提下,捕获一个 ... -
Flyweight
2011-11-23 18:38 653享元模式以共享的方式高效地支持大量的细粒度对象. 1).Fl ... -
Builder
2011-11-22 16:38 766Builder Pattern:可以将一个产品的内部表象与产品 ... -
Bridge
2011-11-22 15:05 693桥梁模式的用意是"将抽象化(Abstraction) ... -
Chain Of Responsibility
2011-11-21 23:05 663Chain Of Responsibility Pattern ... -
Proxy
2011-11-18 18:47 664Proxy Pattern:对其他对象提供一种代理以控制对这个 ... -
State
2011-11-18 15:57 684State Pattern:当一个对象的内在状态改变时允许改变 ... -
Composite
2011-11-17 17:09 802Composite Pattern:意图是将对象组合成树形结构 ... -
Iterator
2011-11-16 16:56 895Iterator Pattern:其意图是提供一种方法顺序访问 ... -
Template Method
2011-11-16 11:43 664模板方法模式:在一个方法中定义一个算法的骨架,而将一些实 ... -
Facade
2011-11-15 23:00 602Facade Pattern:为子系统中的各类(或结构与方法) ... -
Adapter
2011-11-15 21:43 635Adapter Pattern:将一个类的接口,转换成客户所期 ... -
Command
2011-11-14 23:06 5781).下面以Boss和Clerk为例: Clerk.java ... -
Factory Method
2011-11-13 20:44 597Simple Factory: 以Fruit为例,以下是实现 ... -
Decorator
2011-11-12 23:09 576装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的 ... -
Observer
2011-11-12 21:30 611观 察 者 模 式 定义了对象之间的一对多依赖,这样一来 ...
相关推荐
Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。
### 设计模式——Abstract Factory模式的认识 在软件工程领域,设计模式是一种被广泛接受的解决方案,用于解决在软件设计过程中常见的问题。其中,Abstract Factory模式是23种GoF(Gang of Four)设计模式之一,它...
1. 抽象工厂(Abstract Factory):这是模式的核心,它是一个接口或抽象类,定义了一系列创建对象的方法,但并不直接实例化具体的对象。这些方法用于创建一系列相关或相互依赖的对象。 2. 具体工厂(Concrete ...
在设计模式中,Abstract Factory模式是一种用来解决在不指定具体实现的情况下创建一系列相关或相互依赖对象的模式。在本文的上下文中,我们看到它被应用于一个奇幻RPG游戏的角色种族设计,每个种族(如人类、精灵)...
在这个例子中,`AbstractProductA`和`AbstractProductB`是抽象产品,`ConcreteProductA1/A2`和`ConcreteProductB1/B2`是具体产品,`AbstractFactory`是抽象工厂,`ConcreteFactory1/2`是具体工厂。客户端代码通过...
在“AbstractFactory案例代码”中,我们可能看到一个实现跨平台数据访问的例子,这里提到了支持SQLServer和Oracle两种数据库。这表明抽象工厂将用于创建与不同数据库交互的适配器或连接对象。在分层架构设计中,通常...
1. 抽象工厂(Abstract Factory):这是模式的核心,定义了一组创建对象的接口,客户端通过这个接口请求创建所需的产品。这个接口不直接创建产品,而是将产品创建的职责委托给具体工厂。 2. 具体工厂(Concrete ...
总的来说,AbstractFactory模式在C++中的实现充分利用了面向对象的特性,如抽象类、继承和多态,使得系统具有更好的灵活性和扩展性。通过这种方式,我们可以轻松地替换或增加新的产品族,而不会对原有代码造成太大的...
- 抽象工厂接口的头文件(如`AbstractFactory.h`),定义了创建产品的接口。 - 具体工厂类的头文件和源文件(如`ConcreteFactory1.h`、`ConcreteFactory1.cpp`和`ConcreteFactory2.h`、`ConcreteFactory2.cpp`),...
`AbstractFactory`是抽象工厂,定义了创建`AbstractProductA`和`AbstractProductB`的接口;`ConcreteFactory1`和`ConcreteFactory2`是具体工厂,分别创建`ProductA1`和`ProductB1`,以及`ProductA2`和`ProductB2`。`...
这个压缩包“C# 抽象工厂 AbstractFactory.rar”可能包含了一个关于如何在C#中实现抽象工厂模式的实例或教程。 抽象工厂模式是一种创建型设计模式,它提供了一种创建对象族的方式,而无需指定具体类。在C#中,这种...
抽象工厂(Abstract Factory)模式是一种创建型设计模式,它提供了一种创建对象的接口,但允许子类决定实例化哪一个类。这种模式是基于对象的抽象,而不是具体的类,因此,它允许创建一系列相关的对象,而无需指定...
1. 抽象工厂(Abstract Factory):定义一个创建对象的接口,但不指定具体的产品实现。这个接口通常是定义了一组相关产品的生产方法。 2. 具体工厂(Concrete Factory):实现了抽象工厂接口,负责创建具体的产品...
抽象工厂模式的核心组成部分包括抽象工厂(AbstractFactory)、具体工厂(ConcreteFactory)、抽象产品(AbstractProduct)以及具体产品(ConcreteProduct)。以下是对这些角色的详细解释: 1. 抽象工厂(Abstract...
抽象工厂(Abstract Factory)模式是设计模式中的一种创建型模式,它提供了一种...在阅读提供的博客文章《AbstractFactory 抽象工厂》和研究压缩包中的相关文件时,你可以深入学习到更多关于这个模式的实践和应用场景。
Abstract Factory模式 1 定义创建对象的接口,并封装对象的创建 2 将具体化类的工作延迟到了类中 3 创建创建一组相关对象或者说是一组相互依赖的对象 一般情况下,我们为了提高内聚和松耦合,经常会使用多态来...
public class WindowsFactory implements AbstractFactory { @Override public Button createButton() { return new WindowsButton(); } @Override public Window createWindow() { return new ...
1. **模式结构**:抽象工厂模式通常包括抽象工厂接口(AbstractFactory),具体工厂类(ConcreteFactory),抽象产品接口(Product)以及具体产品类(ConcreteProduct)。抽象工厂定义了创建产品的方法,而具体工厂...
抽象工厂通常包含一个抽象工厂接口(例如:`AbstractFactory`)和多个具体工厂类(如:`ConcreteFactory1`和`ConcreteFactory2`)。抽象工厂接口定义了创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建一系列相关或相互依赖对象的接口。这个模式使得客户端代码与具体产品的实现解耦,从而提高了系统的灵活性和...