[关键字]:java,design pattern,设计模式,《Java与模式》,Abstract Factory,抽象工厂模式
[环境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com)
[正文]:
/**
* 抽象工厂:Button and Text of Windows and Unix
* @version 2009-4-11
* @author Winty(wintys@gmail.com)
*/
package pattern.abstractfactory;
public class AbstractFactory{
public static void main(String[] args){
Factory unix , win;
unix = new UnixFactory();
win = new WindowsFactory();
//创建Unix产品
Button btn1 = unix.createButton();
Text text1 = unix.createText();
System.out.println("");
//创建Windows产品
Button btn2 = win.createButton();
Text text2 = win.createText();
}
}
//产品等级1
abstract class Button{
protected String type;
public Button(){
type = "Button";
}
}
class UnixButton extends Button{
public UnixButton(){
System.out.println("Unix" + type);
}
}
class WindowsButton extends Button{
public WindowsButton(){
System.out.println("Windows" + type);
}
}
//产品等级2
abstract class Text{
protected String type;
public Text(){
type = "Text";
}
}
class UnixText extends Text{
public UnixText(){
System.out.println("Unix"+type);
}
}
class WindowsText extends Text{
public WindowsText(){
System.out.println("Windows"+type);
}
}
//抽象工厂
abstract class Factory{
public abstract Button createButton();
public abstract Text createText();
}
class UnixFactory extends Factory{
public Button createButton(){
return new UnixButton();
}
public Text createText(){
return new UnixText();
}
}
class WindowsFactory extends Factory{
public Button createButton(){
return new WindowsButton();
}
public Text createText(){
return new WindowsText();
}
}
- 大小: 72.5 KB
分享到:
相关推荐
抽象工厂模式是一种高级的设计模式,属于创建型模式,它提供了一种创建对象族的方法,而无需指定其具体的类。在PHP中,抽象工厂模式尤其适用于那些需要创建一系列相关或相互依赖的对象,而又不希望硬编码具体类名的...
**抽象工厂模式**是软件设计模式中的一个关键概念,它属于创建型模式,主要用于提供创建对象的接口,使得客户端能够创建一系列相关或相互依赖的对象,而无需指定它们的具体类。在Java编程中,抽象工厂模式尤其适用于...
NULL 博文链接:https://jacky-dai.iteye.com/blog/2296369
在Java中,简单工厂模式、工厂方法模式和抽象工厂模式是三种常见的实现方式。简单工厂模式虽然简单易懂,但扩展性较差,因为它将所有产品类型硬编码在工厂类中。工厂方法模式通过定义创建对象的接口,让子类决定实例...
工厂模式有简单工厂、工厂方法和抽象工厂三种形态,分别适用于不同级别的抽象和灵活性需求。 2. 动态代理:动态代理模式在Java中主要通过Java的反射API和InvocationHandler接口实现。它可以动态地生成一个代理类,...
为了解决这个问题,可以考虑使用抽象工厂模式或者工厂方法模式,使工厂类更加灵活。 在学习这两种模式时,理解其背后的意图和应用场景至关重要。通过实践和案例分析,可以更好地掌握它们的用法和优缺点,从而在实际...
本篇内容重点介绍C++中的工厂模式,包括静态工厂模式、工厂方法模式、以及抽象工厂模式。 静态工厂模式,通常也被称为简单工厂模式。这种模式提供一个创建对象的接口,让其在内部根据输入参数的不同来创建并返回...
抽象工厂模式提供了一组接口,用于创建相关或依赖对象的家族,而无需指定具体类;建造者模式将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示;原型模式通过复制已有对象来创建新对象。 2. **...
抽象工厂模式 原型模式 建造者模式 单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为模式) 解释器模式 模板方法模式 行为模式(对象行为模式) 策略模式 ...
库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(CRM): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会...
在该模式中,一个抽象工厂类定义了创建产品对象的接口,而具体的产品创建由它的子类来实现。在2048游戏中,我们可以将“方块”看作产品,不同的数字(如2、4)代表不同的产品类型。抽象工厂类可能包含一个或多个创建...
根据描述,工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式**: - **定义**:在简单工厂模式中,有一个静态工厂类负责创建对象,根据传入的参数或条件决定创建哪个具体的产品实例。...
3. **抽象工厂模式**:当面临多个产品族,每个产品族都有多个产品等级结构时,抽象工厂模式可以提供一个接口,用于创建相关或依赖对象的家族,而无需指定具体类。 4. **建造者模式**:将复杂对象的构建与其表示分离...
5. **抽象工厂模式**:`15抽象工厂模式`提供了一种方式来创建相关或相互依赖的对象族,而无需指定它们的具体类。它适用于需要在不同平台或环境中创建一系列相关对象的场景。 6. **迭代器模式**:此模式提供了一种...
2. **创建型模式**:如单例模式(Singleton)、工厂模式(Factory)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。这些模式主要用于对象的创建,旨在简化实例化过程,提高...
本文件中提到了单件模式、工厂模式、抽象工厂模式、访问者模式、状态模式、命令模式、解释器模式、备忘录模式、观察者模式、桥接模式、建造者模式、中介者模式、策略模式、适配器模式、装饰模式、享元模式、代理模式...
1. 创建型设计模式:这类模式关注对象的创建过程,它们包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。单例模式确保一个类只有一个实例,并提供全局访问点;工厂方法模式定义一个用于创建对象的...
3. 抽象工厂模式(Abstract Factory):如果PetShop需要支持多种数据库,可能使用抽象工厂模式来创建与特定数据库相关的对象集合,这样可以轻松切换不同的数据库平台。 4. 建造者模式(Builder):在创建复杂的对象...