Java代码实现设计模式之工厂模式

工厂设计模式:为了解耦合,把对象的创建者与对象的使用者分开。
  生活中:批量生产产品
  Java中:批量生产对象

分工:
  把生产(创建)对象与使用对象分开了,解耦合

1、简单工厂模式
  优点:代码比较简洁
  缺点:如果增加新的产品类型,需要修改工厂类
  违反了面向对象的一个开发原则:对扩展开放,对修改关闭

2、工厂方法模式

  (1)为了生产对象与使用对象分开
  (2)如果增加新产品,就不需要修改原来的工厂类
  优点:遵循了增加新产品,不修改原来的类的原则,
  缺点:类太多了

示例:简单工厂模式

class SimpleFactory2{
  public static Car getCar(String type){
    if("BMW".equals(type)){
      return new BMW();
    }else if("BZ".equals(type)){
      return new Benz();
    }
    return null;
  }
}

示例:工厂方法模式

interface Factory{
  VehiCle getVehiCle ();
}

class BMWFactory implements Factory{

  @Override
  public Che getChe() {
    return new BaoMa();
  }
}
class BZFactory implements Factory{

  @Override
  public Che getChe() {
    return new BZ();
  }
}

......

示例:使用反射,结合工厂方法模式与简单工厂模式

class SimpleFactory{
  public static Vehicle getVehicle(String className)throws Exception{
    Class clazz = Class.forName(className);

    Object obj = clazz.newInstance();

    if(obj instance of Vehicle){

      return (Vehicle) obj;  

    }
    return null;
  }
}

原文地址:https://www.cnblogs.com/dirsoen/p/12642817.html

时间: 2024-08-30 12:05:31

Java代码实现设计模式之工厂模式的相关文章

JAVA学习笔记-----设计模式之工厂模式

1.设计模式---------->工厂模式: Sender.java package me.ele.mytest; public interface Sender {    public void send(); } 2.MailSend package me.ele.mytest; public class MailSend implements Sender {     @Override     public  void send()     {         System.out.pr

Java常用的设计模式及工厂模式介绍

j2ee常用的设计模式?说明工厂模式. 总共23种,分为三大类:创建型,结构型,行为型 我只记得其中常用的6.7种,分别是: 创建型(工厂.工厂方法.抽象工厂.单例) 结构型(包装.适配器,组合,代理) 行为(观察者,模版,策略) 然后再针对你熟悉的模式谈谈你的理解即可. Java中的23种设计模式: Factory(工厂模式),      Builder(建造模式),       Factory Method(工厂方法模式), Prototype(原始模型模式),Singleton(单例模式)

java代码实现设计模式之代理模式

/* 代理模式 * * 生活中: * (1)自己不方便做一些事情,例如:去国外 找代购 租房 买房 等等... * 1.代理模式 * (1)主题接口:要求代理类与被代理类实现同一个接口,例如:DAO接口 * (2)被代理者 * (3)代理者 * 必须持有被代理者的引用 * * 2.静态代理模式 * 缺点:一个代理类只能替一个代理主题(接口)代理工作 * * 3.动态代理模式 * 优点:一个代理工作处理器,可以替多个代理主题代理工作,只有代理工作内容一样就可以. * 需要: * (1)编写一个代理

研磨设计模式解析及python代码实现——(一)简单工厂模式

最近在学设计模式,正巧书之前学了些python,但用的还不是很成熟.<研磨设计模式>书上只给了java代码,本着以练手为目标,我照着书上打了一遍java代码,在仔细体会其思想后,将其写成了python的代码.有不对的地方希望各位批评指正~ 具体原理不多做介绍,具体可以参考http://chjavach.iteye.com的博客,或者<研磨设计模式>的书. 一.背景介绍 接口思想: 众所周知,面向对象语言最大的特点便是封装,继承,多态这三个概念.而像Java等面向对象语言最核心的思想

浅析JAVA设计模式之工厂模式(一)

1 工厂模式简介 工厂模式的定义:简单地说,用来实例化对象,代替new操作. 工厂模式专门负责将大量有共同接口的类实例化.工作模式可以动态决定将哪一个类实例化,不用先知道每次要实例化哪一个类. 工厂模式可以分一下三种形态: 简单工厂 (Simple Factory)模式:又称静态工厂模式(StaticFactory). 工厂方法 (Factroy Method)模式:又称多态性工厂模式(Polymorphic Factory). 抽象工厂 (Abstract Factroy)模式:又称工具箱模式

Java常见设计模式之工厂模式

工厂模式在我们日常的应用中应当算是比较广泛的一种设计模式了.今天让我们一起来学习一下,工厂的设计模式. 工厂模式在<Java与模式>中分为三类:     1)简单工厂模式(Simple Factory):不利于产生系列产品:     2)工厂方法模式(Factory Method):又称为多形性工厂:     3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品:        这三种模式从上到下逐步抽象,并且更具一般性.         GOF

Java研究之学习设计模式-简单工厂模式详解

 简介: 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 类图: 从UML类图中,可以看出,简单工厂模式的意思,就是把一个类内部,需要生成的部分,提取出来,变为一个工厂,通过工厂来new对象. 假设我们要吃苹果了,我们可以在代码中new一个苹果出来:当我们需要吃香蕉了,我们在代码中new一个香蕉出来.这种做法你会不会觉得麻烦

Java研究之学习设计模式-抽象工厂模式详解

 简介:          当每个抽象产品都有多于一个的具体子类的时候,工厂角色怎么知道实例化哪一个子类呢?比如每个抽象产[1] 品角色都有两个具体产品.抽象工厂模式提供两个具体工厂角色,分别对应于这两个具体产品角色,每一个具体工厂角色只负责某一个产品角色的实例化.每一个具体工厂类只负责创建抽象产品的某一个具体子类的实例. 每一个模式都是针对一定问题的解决方案,工厂方法模式针对的是一个产品等级结构:而抽象工厂模式针对的是多个产品等级结构.(摘自百度百科) 话语说得太抽象,程序员最好的表示方式

Java设计模式之工厂模式(Factory模式)介绍(转载)

原文见:http://www.jb51.net/article/62068.htm 这篇文章主要介绍了Java设计模式之工厂模式(Factory模式)介绍,本文讲解了为何使用工厂模式.工厂方法.抽象工厂.Java工厂模式举例等内容,需要的朋友可以参考下 工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经