`
gaojingsong
  • 浏览: 1182100 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

工厂模式PK 工厂变种模式

阅读更多

// 产品接口         

public interface Product {   

    public void getName();   

}   

  

// 具体产品A   

public class ProductA implements Product {   

    public void getName() {   

        System.out.println("  I am ProductA  ");   

    }   

}   

  

// 具体产品B   

public class ProductB implements Product {   

    public void getName() {   

        System.out.println("  I am ProductB  ");   

    }   

}   

  

// 工厂类   

public class ProductCreator {   

    public Product createProduct(String type) {   

        if (" A ".equals(type)) {   

            return new ProductA();   

        }   

        if (" B ".equals(type)) {   

            return new ProductB();   

        } else  

            return null;   

    }   

    public static void main(String[] args) {   

        ProductCreator creator = new ProductCreator();   

        creator.createProduct(" A ").getName();   

        creator.createProduct(" B ").getName();   

    }   

}  

 

--------------------------------另一种设计模式-----------------------------------

// 产品接口   具体产品A   具体产品B   不变,仅仅改变工厂实现,就是一种新模式,小伙伴知道这是一种什么模式吗?

//工厂类   

public class ProductCreator {   

 

public void createProduct(Product p) { 

p.getName();

System.out.println("------ProductCreator------p.getName");

}

 

public static void main(String[] args) {   

        ProductCreator creator = new ProductCreator();   

        creator.createProduct(new ProductA());

         creator.createProduct(new ProductB());

    }   

 

0
3
分享到:
评论
1 楼 pjwqq 2016-03-10  
OMG...

相关推荐

    uml 文档 简单工厂模式

    UML文档-简单工厂模式 ...简单工厂模式和抽象工厂模式都是工厂模式的变种,它们都可以用来创建对象,但是它们的实现方式和应用场景不同。简单工厂模式适合创建单个产品,而抽象工厂模式适合创建多个产品族。

    工厂模式实现(比较简单,适合初学者)

    工厂方法模式是工厂模式的一个变种,它将产品对象的创建过程延迟到了子类。在工厂方法模式中,抽象工厂类定义了一个创建对象的接口,但不直接实例化对象,而是由其子类决定创建哪个类的对象。这样,每个子类都可以...

    C#工厂模式实例详解

    7. **扩展与变种**:可能还会涉及其他一些与工厂模式相关的模式,比如建造者模式,或者介绍如何结合其他模式(如策略模式、装饰器模式)来增强工厂模式的功能。 通过深入理解和实践工厂模式,开发者可以更好地组织...

    简单工厂模式(计算器)

    然而,当产品类的数量变得庞大时,工厂类可能变得难以维护,此时可能需要考虑使用更复杂的工厂模式变种,如抽象工厂模式或者使用依赖注入框架。 总的来说,"简单工厂模式(计算器)"是一个很好的示例,用于展示如何...

    C#工厂模式[归纳].pdf

    简单工厂模式是软件开发中常用的一种创建型设计模式,它为客户端代码提供了...然而,对于大型复杂系统,可能需要考虑使用更复杂的工厂模式变种,如工厂方法模式或抽象工厂模式,以适应更多样化的需求和更灵活的扩展性。

    2 工厂模式-MOOC课程内容.pdf

    工厂模式主要有两种变种:工厂方法模式(Factory Method Pattern)和抽象工厂模式(Abstract Factory Pattern)。 1. 工厂方法模式: 工厂方法模式是一种非常典型的创建型设计模式。它定义了一个创建对象的接口,但...

    Android设计模式系列之工厂方法模式

    此外,简单工厂模式作为工厂方法模式的一个变种,它省去了抽象工厂,直接由一个类来创建对象。在Android的`Connection`类中,我们可以看到这样的应用。`getConnection`方法作为一个静态工厂方法,根据传入的参数决定...

    本源码是HSMM的Python包,HSMM是HMM的一个变种,主要用于模式识别,机器学习等.zip

    本源码是HSMM的Python包,HSMM是HMM的一个变种,主要用于模式识别,机器学习等本源码是HSMM的Python包,HSMM是HMM的一个变种,主要用于模式识别,机器学习等本源码是HSMM的Python包,HSMM是HMM的一个变种,主要用于...

    23种JAVA设计模式和15种J2EE设计模式

    2. **工厂模式**:提供创建对象的接口,但不指定具体实现。分为简单工厂、工厂方法和抽象工厂三种类型。 3. **构造器模式**(Builder):将复杂对象的构建与其表示分离,使得相同的构建过程可以创建不同的表示。 4...

    手撕设计模式之「工厂方法模式」(Java描述)

    工厂方法让类的实例化推迟到子类中进行,这是抽象工厂模式的一个变种。 **模式结构** 1. **抽象产品(Product)**:定义了产品的接口,通常为一个接口或抽象类,具体的产品类需要实现这个接口或继承这个抽象类。 2. ...

    Swift 设计模式

    Swift中的工厂模式可以通过协议和类型擦除实现,使得代码更加模块化和可扩展。 3. **建造者模式(Builder)**: 建造者模式将复杂对象的构建与其表示分离,使同一种构建过程可以创建不同的表示。在Swift中,可以...

    iOS 设计模式及源码实现

    2. **工厂模式**:工厂模式提供了一种创建对象的最佳方式,隐藏了对象创建的复杂性。在iOS开发中,可以用来创建视图控制器或者自定义控件,使得代码更加灵活且易于维护。 3. **代理模式**:代理模式允许一个对象...

    Java设计模式国外珍藏版

    工厂模式则提供了一种创建对象的最佳方式,而无需指定具体类,增加了代码的灵活性和可扩展性。 衍生模式可能包括了对这些经典模式的变体,例如懒汉式单例(延迟初始化)、双检锁单例(DCL,使用volatile关键字),...

    六种微服务架构的设计模式.pdf

    代理微服务设计模式是聚合器模式的一个变种。在这种情况下,客户端并不聚合数据,但会根据业务需求的差别调用不同的微服务。代理可以仅仅委派请求,也可以进行数据转换工作。 链式微服务设计模式是一种常见的微服务...

    单例模式.txt

    简单工厂模式(也称为静态工厂方法)是工厂模式的一个变种,其目的是封装创建对象的过程。简单工厂模式由一个工厂对象决定创建出哪一种产品类的实例。该模式简化了客户端代码,使得客户端不必关心产品是如何被创建的...

    二十三种设计模式【PDF版】

    使用工厂模式就象使用 new 一样频繁. 设计模式之 Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder 模式就是将这两 种情况分开进行。 设计模式之 ...

    深入浅出之[Head First 设计模式]

    创建型模式主要关注对象的创建过程,如单例模式、工厂模式、抽象工厂模式等,它们帮助我们优雅地管理对象的实例化过程。结构型模式关注如何组合现有组件来形成更大的结构,如适配器模式、装饰器模式、代理模式等,...

    Java建造者模式源码

    例如,可能会引入抽象工厂模式,让建造者能够创建不同类型的子产品。此外,有时建造者会带有参数,允许用户在构建过程中指定某些特性。还有时,建造者模式会被用来实现链式构建,即每个构建方法都返回Builder自身,...

Global site tag (gtag.js) - Google Analytics