`

[原]抽象工厂模式

阅读更多

[关键字]: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
分享到:
评论

相关推荐

    抽象工厂模式 设计模式中创建型之抽象工厂模式

    本例是一个抽象工厂的实例程序,纯粹的个人完全原创,里面有完整的注释及说明。非常适合于新手及对设计模式有困惑的。实例简单但清晰的阐述了抽象工厂模式的妙处。

    [原创][创建型模式] 简单工厂、工厂方法、抽象工厂三种设计模式的理解

    NULL 博文链接:https://jacky-dai.iteye.com/blog/2296369

    [浪曦原创]JAVA设计模式 第4讲 抽象工厂(jzkangta)

    [浪曦原创]JAVA设计模式 第4讲 抽象工厂(jzkangta)

    【资源免费下载】Java代码积累丨大话设计模式(Java实现版本)、线程协作

    抽象工厂模式 原型模式 建造者模式 单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为模式) 解释器模式 模板方法模式 行为模式(对象行为模式) 策略模式 ...

    winform版的小型货物管理系统,数据库使用了mysql,应用了代理模式,和抽象工厂模式的设计思想。.zip

    库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(CRM): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会...

    factory.zip

    阅读设计模式之禅以及大话设计模式,写个demo加深印象,可以参考作者文章原 《简单工厂模式、工厂方法模式和抽象工厂模式》https://blog.csdn.net/u013795543/article/details/100173672

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

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

    从实例谈面向对象编程、工厂模式和重构

    么还要那么麻烦去请动抽象工厂模式,来生成两类产品呢? 可能还会有人问,即使你使用这种方式,那么在判断具体创建哪个工厂的时候,不是也要用到 switch 语 句吗?我承认这种看法是对的。不过使用工厂模式,其直接...

    java设计模式选择题复习题.doc

    工厂系列模式的优缺点: 让用户的代码和某个特定类的子类的代码解耦 用户不必知道它所使用的对象是怎样创建的,只需知道该对象有哪些方法 抽象工厂模式可以为用户创建一系列相关的对象,使用户和创建这些对象的类脱...

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

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

    设计模式:可复用面向对象软件的基础--详细书签版

    3.1 abstract factory(抽象工厂)— 对象创建型模式 57 3.2 builder(生成器)—对象创建型 模式 63 3.3 factory method(工厂方法)— 对象创建型模式 70 3.4 prototype(原型)—对象创建型 模式 87 3.5 ...

    Java电子书打包-6

    Java设计模式之抽象工厂模式.pdf Java数据结构和算法.pdf Java数据结构和算法中文第二版.pdf Java线程.pdf Java夜未眠_程序员的心声.pdf JAVA优化编程.pdf Java语言编码规范.PDF Java语言程序设计-基础篇(原书第8版)...

    UML和模式应用(架构师必备).part02.rar

    35.7 对一组相关的对象使用抽象工厂模式 35.8 使用多态性和“Do It Myself”模式处理支付 35.9 示例:Monopoly案例 35.10 结论 第36章 包的设计 36.1 组织包结构的准则 36.2 参考资料 第37章 UML部署图和构件...

    UML和模式应用(架构师必备).part06.rar

    35.7 对一组相关的对象使用抽象工厂模式 35.8 使用多态性和“Do It Myself”模式处理支付 35.9 示例:Monopoly案例 35.10 结论 第36章 包的设计 36.1 组织包结构的准则 36.2 参考资料 第37章 UML部署图和构件...

    leetcode题库-study-prj:学习日记:rocket:

    设计模式共23种(大部分文献也有24种的说法,增加了空对象模式),常用一定要掌握的设计模式:单例模式、工厂模式、抽象工厂模式、策略模式、装饰模式、适配器模式、桥接模式、观察者模式 codetips :closed_book: ...

    asp.net知识库

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

    UML和模式应用(架构师必备).part01.rar

    35.7 对一组相关的对象使用抽象工厂模式 35.8 使用多态性和“Do It Myself”模式处理支付 35.9 示例:Monopoly案例 35.10 结论 第36章 包的设计 36.1 组织包结构的准则 36.2 参考资料 第37章 UML部署图和构件...

Global site tag (gtag.js) - Google Analytics