工厂模式

原创 2015年11月20日 15:01:15

普通工厂模式分为:1)普通模式   2)多个工厂模式  3)静态工厂模式

public class Main {
	
	public static void main(String[] args) throws Exception {
		Car car = CarFactory.createCar("BAOMA");
                    car.run();
	}

}
class CarFactory{
   public static Car createCar(String name){
	   if ("AODI".equals(name)) return new Aodi();
	   else if ("BAOMA".equals(name)) return new Baoma();
	   else return null;
   }
}
interface Car{
    public void run();
}
final class Aodi implements Car{

	@Override
	public void run() {
        System.out.println("我是奥迪车!");		
	}
	
}
final class Baoma implements Car{

	@Override
	public void run() {
        System.out.println("我是宝马车!");		
	}
	
}

贴上自己喜欢的代码!

——这是普通工厂模式的代码,另外两种也类同。 我们使用最多的是静态工厂模式,不需要创建实例直接调用就可以!


抽象工厂模式:

/**
 * 
 * @author: muyichun
 * @date  : 2016-3-22上午10:19:06
 * @function: 抽象工厂模式
 */
public class Main {
	
	public static void main(String[] args) throws Exception {
		Provider provicer = new CarAodiFactory();
		Car car = provicer.produce();
		car.run();
	}

}
interface Provider{           // 工厂代理接口
	public Car produce();     
}
class CarAodiFactory implements Provider{
	@Override
	public Car produce() {
		return new Aodi();
	}
}
class CarBaomaFactory implements Provider{
	@Override
	public Car produce() {
		return new Baoma();
	}
}
interface Car{                // 产品代理接口
    public void run();
}
final class Aodi implements Car{
	@Override
	public void run() {
        System.out.println("我是奥迪车!");		
	}
	
}
final class Baoma implements Car{
	@Override
	public void run() {
        System.out.println("我是宝马车!");		
	}
	
}

抽象工厂其本质是一样的,如果将工厂类设为静态的就失去其抽象(面向对象)的意义了。 结合实际项目选着合适的模式或者有几种都可以使用!

一个例子穿插三种不同的工厂模式形态

1、简单工厂模式 工厂类根据提供给它的参数,返回的是几个产品中的一个类的实例。通常情况下,它返回的是一个公共的父类,在这个工厂类里面,父类的引用指向子类的对象 厂长生产杯子时先不让生产线知道我...
  • u013360022
  • u013360022
  • 2016年04月07日 21:59
  • 625

单例、多例模式&&工厂模式

单例、多例模式假设,老张开车去东北public class Car { public void run(){ System.out.println("冒着烟奔跑中car..........
  • hackerHL
  • hackerHL
  • 2017年02月22日 15:20
  • 824

单例模式,工厂模式,代理模式汇总

1.单例模式: 饿汉式 (可用) public class Demo{ private static Demo demo = new Demo(); private Demo()...
  • rusbme
  • rusbme
  • 2016年05月03日 16:17
  • 3308

关于工厂模式的作用。为什么要用工厂模式?

关于工厂模式的作用。为什么要用工厂模式?
  • kocscs123
  • kocscs123
  • 2016年11月20日 19:56
  • 1070

工厂模式及在项目中的应用

工厂模式分为简单工厂、工厂方法模式和抽象工厂模式。简单工厂顾名思义是最简单的,从一个工厂获取所需的产品类似于factory.getProduct1();或factory.getProduct2(),最...
  • empyan
  • empyan
  • 2017年02月06日 21:20
  • 2518

Android设计模式之工厂模式 Factory

一.概述 平时做项目跟使用第三方类库的时候经常会用到工厂模式.什么是工厂模式,简单来说就是他的字面意思.给外部批量提供相同或者不同的产品,而外部不需要关心工厂是如何创建一个复杂产品的过...
  • l2show
  • l2show
  • 2015年08月23日 16:25
  • 20439

iOS 设计模式之工厂模式

工厂模式我的理解是:他就是为了创建对象的 创建对象的时候,我们一般是alloc一个对象,如果需要创建100个这样的对象,如果是在一个for循环中还好说,直接一句alloc就行了,但是事实并不那么如意,...
  • xiazailushang
  • xiazailushang
  • 2014年02月10日 18:05
  • 35266

Spring 实现两种设计模式:工厂模式和单态模式

本文摘自:李刚 著 《轻量级 Java EE企业应用实战 Struts2+Spring+hibernate整合开发》                   在Spring 中大量使用的以下两种设...
  • Titilover
  • Titilover
  • 2011年08月31日 13:05
  • 26636

工厂模式详解

工厂模式详解java实现
  • huruzun
  • huruzun
  • 2014年05月23日 17:41
  • 1591

工厂模式(自己的理解和实现)

最近学习了工厂模式,看了网上的教程,也学习了别人的代码,最后自己按照自己的想法实现了一下。 有想看原文的去这个网址 http://blog.csdn.net/mmquit/article/detai...
  • carterjin
  • carterjin
  • 2012年10月10日 11:13
  • 5355
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工厂模式
举报原因:
原因补充:

(最多只允许输入30个字)