`
thunderbow
  • 浏览: 157424 次
  • 性别: Icon_minigender_1
  • 来自: beijing
社区版块
存档分类
最新评论

创建模式——简单工厂模式

阅读更多
1、概要
    简单工厂模式是一个对象创建型模式,它定义了一个用于创建对象的接口,让子类决定实例化哪一个类,它使得一个类的实例化延迟到了子类。
2、使用场景
    为什么要使用工厂模式,它能帮助解决什么问题?面向对象的封装(Encapsulation)和分派(Delegation)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段和段之间偶合联系性),这样就会将风险分散,以后如果需要修改,只要更改每段,不会再发生牵一动百的事情了。使用工厂模式,能够将创建实例和使用实例分开,封装了使用者将得到那些具体类的信息,并且隐藏了这些类的实例是如何被创建和放在一起的。
3、结构图

4、实例
    先看看Product接口:
package simpleFactory;

public interface Product {
   public void doSth();
}
    
    再看看和他关联的具体的类:
package simpleFactory;

public class ConcreteProduct1 implements Product {
    public void doSth(){
        System.out.print("this is product1");
    }
}

package simpleFactory;

public class ConcreteProduct2 implements Product {
        public void doSth(){
        System.out.print("this is product2");
    }
}

package simpleFactory;

public class ConcreteProduct3 implements Product {
        public void doSth(){
        System.out.print("this is product3");
    }
}

package simpleFactory;

public class ConcreteProduct4 implements Product {
        public void doSth(){
        System.out.print("this is product4");
    }
}
    最后是工厂方法的核心类:
package simpleFactory;

public class Creator {
    public static Product productFactory(int which) {

        switch(which){
        case 1:
            return new ConcreteProduct1();
            break;
        case 2:
            return new ConcreteProduct2();
            break;
        case 3:
            return  new ConcreteProduct3();
            break;
        case 4:
            return  new ConcreteProduct4();
            break;
        default:
            return null;
        }
    }   
}
5、优缺点
    优点如下:
    客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。
    缺点也很明显:
    当产品修改时,工厂类也要做相应的修改。有点违背了开—闭原则。
    

 

分享到:
评论

相关推荐

    设计模式——简单工厂模式

    **设计模式——简单工厂模式** 简单工厂模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个专门的类(称为工厂类)负责创建对象,客户端无需知道所创建的对象的具体类,只需要...

    c#工厂模式——简单工厂,抽象工厂,单件模式实例

    简单工厂模式是一种静态工厂方法,它创建一个具体的对象而无需暴露创建逻辑。在C#中,我们可以定义一个工厂类,该类包含一个静态方法,用于根据输入参数返回不同类型的实例。例如,一个形状工厂可以生成圆形、...

    c#工厂模式——简单工厂_抽象工厂实例

    ### C#工厂模式详解——简单工厂与抽象工厂实例解析 #### 一、工厂模式概述 工厂模式是一种常用的设计模式,在面向对象编程中被广泛应用于创建对象。它通过提供一个统一的接口来创建一系列相关的或相互依赖的对象...

    设计模式——简单工厂 VS 工厂方法

    简单工厂模式,也称为静态工厂模式,是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露实例化逻辑。在简单工厂模式中,一个单一的工厂类负责生产所有相关类型的实例。这种模式适用于产品种类较少且...

    实验二 简单工厂模式.zip_31QS_C#_设计模式——简单工厂模式_设计模式实验

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了客户端代码与具体产品类之间的耦合度。在本实验中,我们将深入理解和应用C#语言实现简单工厂模式。 简单工厂模式的...

    设计模式——抽象工厂模式

    抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体类。这种模式的主要目的是为了隔离产品对象的创建和使用,使得系统对产品类的依赖降低到最低,同时也方便了产品的扩展和...

    设计模式C#描述之——简单工厂模式

    ### 设计模式C#描述之——简单工厂模式 #### 知识点概述 简单工厂模式是一种常用的设计模式,属于创建型模式之一。该模式的主要目的是为了封装产品对象的创建过程,将这一过程从客户端分离出来,使客户端无须关心...

    软件设计模式——抽象工厂

    抽象工厂模式是一种重要的软件设计模式,它属于创建型模式,主要解决的是当系统需要创建一系列相关或相互依赖的对象时,而这些对象的类在运行时可能不确定的问题。在这个模式中,我们通过一个抽象工厂接口来定义创建...

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

    在Java等面向对象编程语言中,工厂模式分为简单工厂、工厂方法和抽象工厂三种类型。标题中的“抽象工厂”是工厂模式的一种高级形式,它关注于创建一系列相关的或相互依赖的对象家族,而不仅仅是一个单独的对象。抽象...

    创建型——工厂模式(工厂方法)

    工厂模式分为三种主要类型:简单工厂、工厂方法和抽象工厂。这里我们主要讨论的是工厂方法模式。 **工厂方法模式**的核心在于定义一个创建对象的接口,但让实现这个接口的类决定实例化哪一个类。工厂方法让类的实例...

    设计模式——工厂方法模式

    工厂方法模式是面向对象设计模式中的一种,它属于创建型模式,主要解决的是当系统需要创建的对象具有多种类型,而具体创建哪种类型的对象在运行时才能确定的问题。在这个压缩包中,`FactoryMethod`可能包含了Java...

    简单工厂模式——演示+例子+PPT

    简单工厂模式是一种设计模式,属于创建型模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个专门的类(称为工厂类)负责创建其他类的实例,客户端通过工厂类来创建需要的对象,而不需要知道具体创建过程...

    设计模式实现——抽象工厂模式结构实现

    抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体的类。这种模式允许客户端使用一个通用接口来创建一组相关或相互依赖的对象,而无需关心它们的具体实现。在Java或其他...

    Cocos2d-x实现潜艇大战——简单工厂模式,对象池

    本项目"潜艇大战"是基于Cocos2d-x的一个实例,旨在利用"简单工厂模式"和"对象池"这两种设计模式来优化资源管理和对象创建,提高游戏性能。 ### 简单工厂模式 简单工厂模式是一种创建型设计模式,它提供了一个创建...

    格斗类游戏软件——抽象工厂模式

    抽象工厂模式是一种设计模式,属于创建型模式,它提供了一种创建对象集合的方式,这些对象来自相关联的产品家族,而且每个对象都属于不同的抽象产品类。在“格斗类游戏软件”的场景中,这个模式可以帮助我们根据玩家...

    设计模式——GFour

    创建型模式主要关注对象的创建过程,包括单例模式、工厂模式、抽象工厂模式、建造者模式和原型模式。它们旨在提供一种方式来封装对象的创建,使得系统对对象的实例化过程更加灵活,同时降低类间的耦合度。 结构型...

    C++ 工厂模式 (简单工厂、工厂和抽象工厂)

    本文将深入探讨三种不同类型的工厂模式——简单工厂、工厂方法和抽象工厂——在C++中的应用与实现。 #### 二、工厂模式概述 工厂模式的核心在于将对象的创建与使用分离,使得系统在不修改现有代码的情况下可以扩展...

    实验七 设计模式——创建型模式.docx

    ### 实验七 设计模式——创建型模式 #### 一、实验目的 1. **掌握设计模式:** 通过本实验,学生将深入了解三大类型的23种设计模式,并掌握每种模式的基本工作原理及其适用场景。 2. **应用场景设计:** 学生能够...

    C#设计模式(3)——工厂方法模式.pdf

    此 时工厂类不再负责所有产品的创建,而只是给出具体工厂必须实现的接口,这样工厂方法模式就可以允许 系统不修改工厂类逻辑的情况下来添加新产品,这样也就克服了简单工厂模式中缺点。下面看下工厂模式 的具体实现...

    Java与模式——源码

    简单工厂、工厂方法和抽象工厂都是工厂模式的不同形式。 3. **观察者模式**:也称为发布-订阅模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 ...

Global site tag (gtag.js) - Google Analytics