`
flysnail
  • 浏览: 92859 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对设计模式—Abstract Factory模式的认识

阅读更多
现在公司搬家了,吃饭都成了问题,每次得跑到外面去吃,走到一个小吃店都不知道吃什么,只好点了个盖交饭.其实厨房就相当与Factory ,你想吃什么就给你炒什么.
public interface Vegetables
{
    public void cooking();
}

public class MeatVegetables implements  Vegetables
{
    public void cooking()
    {
      System.out.println("Cooking Meat and Vegetables");
    }
}

public class PastaVegetables implements  Vegetables
{
    public void cooking()
    {
      System.out.println("Cooking Pasta and Vegetables");
    }
}

public interface Noodle
{
    public void cooking();
}

public class  MeatNoodle implements Noodle
{
    public void cooking()
    {
       System.out.println("Meat and Noodle");  
    }
}

public class  VegetablesNoodle implements Noodle
{
    public void cooking()
    {
        System.out.println("Vegetables and Noodle");
    }
 
} 
public interface Buyer
{   
    //
    public Vegetables buyVegetables(Vegetables whichVegetables);
    
    public Noodle  buyNoodle(Noodle whichNoodle);
}

public  class WageWorker implements Buyer
{
     public Vegetables buyVegetables(Vegetables whichVegetables)
     {
         return  whichVegetables;
     }
   
     public Noodle buyNoodle(Noodle whichNoodle)
     {
        return   whichNoodle;
     }
}

public class TestVegetables
{
    public static void main(String[]args)
    { 
        //MeatVegetables Instance
        Vegetables meatVegetables = new MeatVegetables(); 
        //PastaVegetables  Instance
        Vegetables pastaVegetables = new PastaVegetables(); 
        //MeatNoodle  Instance
        Noodle meatNoodle = new  MeatNoodle();
        //VegetablesNoodle  Instance
        Noodle vegetablesNoodle = new VegetablesNoodle();
        //Custom Instance
        Buyer  custom = new WageWorker();
        //Choice meatVegetables 
        custom.buyVegetables(meatVegetables ).cooking();
        //Choice pastaVegetables  
        custom.buyVegetables(pastaVegetables).cooking();
        //Choice meatNoodle
        custom.buyNoodle(meatNoodle).cooking();
        //Choice vegetablesNoodle
        custom.buyNoodle(vegetablesNoodle).cooking();  
    }
}

抽象工厂:
1.抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。这就是抽象工厂模式的用意。
2.抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态
3.我们还可以动态扩张其他类
2
1
分享到:
评论
1 楼 tongys 2008-04-16  
有点深奥啊,不太理解!

相关推荐

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。

    设计模式之Abstract Factory模式和代码实现

    在设计模式中,Abstract Factory模式是一种用来解决在不指定具体实现的情况下创建一系列相关或相互依赖对象的模式。在本文的上下文中,我们看到它被应用于一个奇幻RPG游戏的角色种族设计,每个种族(如人类、精灵)...

    设计模式 创建型模式 Abstract Factory模式(抽象工厂)

    Abstract Factory模式 1 定义创建对象的接口,并封装对象的创建 2 将具体化类的工作延迟到了类中 3 创建创建一组相关对象或者说是一组相互依赖的对象 一般情况下,我们为了提高内聚和松耦合,经常会使用多态来...

    设计模式C++学习之抽象工厂模式(AbstractFactory)

    抽象工厂模式是设计模式中的一种结构型模式,它在C++编程中有着广泛的应用。这个模式主要用于创建一系列相关的对象,而无需指定它们的具体类。在本文中,我们将深入探讨抽象工厂模式的概念、工作原理以及在C++中的...

    设计模式之Factory

    本篇文章将详细探讨"设计模式之Factory",它是一种非常基础且重要的创建型设计模式。 Factory模式的核心思想是提供一个接口或者抽象类,用于创建某一类对象,但允许其子类决定实例化哪一个类。这种模式使得创建过程...

    .NET抽象工厂设计模式 AbstractFactory

    .NET抽象工厂设计模式是软件开发中的一个核心设计模式,它属于创建型模式,主要用于创建对象族,而这些对象族在不同的上下文中具有不同的具体实现。在这个特定的项目中,抽象工厂模式被用来实现在不同数据库之间的...

    创建型模式之抽象工厂模式(Abstract Factory Pattern)

    抽象工厂模式是设计模式中的一种创建型模式,其主要目的是为了解耦客户端代码与具体产品的实现。在软件工程中,当系统需要根据不同的平台、环境或者配置产生一系列相关对象,而这些对象之间的关系又非常复杂时,抽象...

    C#设计模式之AbstractFactory

    "Abstract Factory"模式是其中一种,它属于创建型设计模式,旨在提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在这个模式中,抽象工厂类定义了一组创建产品的方法,这些方法都是抽象的,由...

    设计模式 t03AbstractFactory

    在"设计模式 t03AbstractFactory"中,我们主要探讨的是如何利用抽象工厂模式来构建跨平台或不同环境下的对象。抽象工厂通常包含一个抽象工厂接口,该接口定义了一系列用于创建产品对象的方法。然后,为每个具体环境...

    创建型-抽象工厂模式(Abstract Factory)

    此外,抽象工厂模式还可以与其他设计模式结合使用,比如工厂方法模式(Factory Method Pattern),在某些情况下,可以将抽象工厂模式的抽象工厂类设计为工厂方法模式,让子类决定实例化哪一个类。同时,抽象工厂模式...

    走进设计模式之抽象工厂(Abstract Factory)

    设计模式是软件工程中的一种最佳实践,用于解决常见的设计问题并提供可复用的解决方案。在众多设计模式中,抽象工厂(Abstract Factory)模式是一种创建型模式,它为创建一组相关或相互依赖的对象提供一个接口,而...

    AbstractFactory设计模式源码

    抽象工厂(Abstract Factory)设计模式是一种创建型设计模式,它提供了一种创建对象族的接口,而无需指定它们的具体类。这种模式适用于当系统需要创建一组相关或相互依赖的对象,而这些对象的具体类在运行时可能未知...

    AbstractFactory案例代码

    在软件设计领域,设计模式是一种被广泛接受的解决常见问题的最佳实践。抽象工厂(Abstract Factory)模式是其中一种创建型设计模式,它提供了一个接口,用于创建相关或依赖对象的家族,而无需指定它们的具体类。这个...

    抽象工厂模式abstractFactory

    抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种创建对象集合的接口,而无需指定具体的产品类型。这种模式适用于当系统需要在不同平台或环境中创建一组相关或相互依赖的对象时,而这些...

    AbstractFactory模式C++实现

    抽象工厂(Abstract Factory)模式是一种设计模式,属于创建型模式,它提供了一种创建对象族的接口,而无需指定其具体类。在C++中,我们可以利用模板、继承和多态等特性来实现这一模式。 首先,我们从概念上理解...

    C++设计模式代码资源9_Abstract Factory.zip

    抽象工厂(Abstract Factory)设计模式是软件工程中一种重要的创建型设计模式,它提供了一种创建对象族的接口,使得相同家族的接口可以被不同子类实现,而这些子类可以生产出一系列相关的对象。在C++中,这种模式常...

    李建忠 C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式)

    **抽象工厂模式(Abstract Factory Pattern)是创建型设计模式之一,它提供了一种创建对象的接口,使得子类可以决定实例化哪一个类。这种类型的设计模式属于类的创建模式。** 在C#中,抽象工厂模式的核心在于抽象...

    C#设计模式之抽象工厂(abstract factory)模式示例源代码

    ### C#设计模式之抽象工厂(Abstract Factory)模式详解 #### 概述 抽象工厂模式(Abstract Factory Pattern)是创建型设计模式的一种,它提供了一个接口用于创建一系列相关的或相互依赖的对象,而无需指定它们具体的...

    设计模式之-抽象工厂-AbstractFactory

    抽象工厂(Abstract Factory)设计模式是软件工程中一种重要的创建型设计模式,它提供了一种创建对象组的方式,这些对象属于同一族系并且彼此相关。这个模式的主要目标是定义一个接口,用于创建一族相关或相互依赖的...

Global site tag (gtag.js) - Google Analytics