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

    简单工厂模式(计算器)

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

    Java中的工厂模式概述

    工厂模式是软件工程中一种创建型设计模式,用于创建对象而不暴露创建逻辑给客户端,并且通过使用一个共同的接口来指向新创建的对象。在Java编程语言中,工厂模式被广泛应用于各种场景以简化对象的创建和管理,同时...

    设计模式之创建型模式

    当然,工厂模式也有很多变种,如简单工厂、工厂方法、抽象工厂等,它们在不同的应用场景中发挥着各自的优势。 另一个我们深入探讨的创建型模式是单态模式。单态模式确保一个类只有一个实例,并且提供一个全局访问点...

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

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

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

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

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

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

    桥接模式(Bridge Pattern)详解 1. 什么是桥接模式? 2. 为什么需要桥接模式? 3. 桥接模式的核心概念 4. 桥接模式的结构 5. 桥接模式的基本实现 5.1 基础示例:绘图应用

    7.3 桥接模式 vs 抽象工厂模式 8. 桥接模式的优缺点 8.1 优点 8.2 缺点 9. 何时使用桥接模式? 10. 常见问题与解决方案 10.1 如何确定哪部分是抽象,哪部分是实现? 10.2 如何处理多层次的抽象和实现? 10.3 如何在...

    本源码是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. ...

    模板方法模式(Template Method Pattern)详解 1. 什么是模板方法模式? 2. 为什么需要模板方法模式? 3. 模板方法模式的核心概念 3.1 模板方法(Template Met

    8.2 模板方法模式 vs 工厂方法模式 8.3 模板方法模式 vs 命令模式 9. 模板方法模式的优缺点 9.1 优点 9.2 缺点 10. 何时使用模板方法模式? 11. 常见问题与解决方案 11.1 如何确定哪些方法应该是抽象的,哪些应该是...

    Swift 设计模式

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

    iOS 设计模式及源码实现

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

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

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

    Java设计模式国外珍藏版

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

Global site tag (gtag.js) - Google Analytics