工厂模式

原创 2016年05月31日 20:06:07

                                                                                                              工厂模式

   

    在设计模式中,一个类代表另一个类的功能,这种类型的模式称为结构性模式。在代理模式中,我们创建具有对象的对象,以便向外界提供功能接口。

 我们一般会在什么地方会用到呢?我们明确地计划不同条件下创建爱不同实例时而实现的代码的关键就创建过程在其子类执行

   根据UML类图来实现这些代码:


  

 定义接口

public interface Shape {
 void draw();
}

public class Circle implements Shape{

	public void draw()
	{
		System.out.println("Inside Circle::draw() method.");
	}
}

public class Rectangle implements Shape{

	@Override
	public void draw() {
		// TODO Auto-generated method stub
		
		System.out.println("Inside Rectangele::draw() method.");
	}

}

public class Square implements Shape{

	@Override
	public void draw() {
		// TODO Auto-generated method stub
		
		System.out.println("Inside Square::draw() method.");
	}

}
public class ShapeFactory {

  public Shape getShape(String shapeType)
  { 
	   if(shapeType == null)
	   {
	     return null;
	   }
	   if(shapeType.equalsIgnoreCase("CIRCLE")){
		   return new Circle();
	   }
	   else if(shapeType.equalsIgnoreCase("RECTANGLE")){
		   return new Rectangle();
	   } 
	   else if(shapeType.equalsIgnoreCase("SQUARE")){
		   return new Square();
	   }
	    return null;
		  
  }
}

public class FactoryPatterDemo {
   public static void main(String[] args)
   {
	   ShapeFactory  shapeFactory = new ShapeFactory();
	   
	   //  获取 Circle
	   Shape shape1 = ((ShapeFactory) shapeFactory).getShape("CIRCLE");
	  shape1.draw();
	  
	  Shape shape2 = ((ShapeFactory) shapeFactory).getShape("RECTANGLE");
	  shape2.draw();
	  
	  Shape shape3 = ((ShapeFactory) shapeFactory).getShape("SQUARE");
	  shape3.draw();
	  
	  
   }
}



   

  运行结果:

  






 

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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
  • 823

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

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

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

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

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

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

Android设计模式之工厂模式 Factory

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

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

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

工厂模式详解

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

iOS 设计模式之工厂模式

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

面试问题,多态,工厂模式

具体说,多态就是基类的指针在调用虚函数成员的时候,运行时系统会根据指针实际指向的对象调用恰当的成员函数。 当一个方法在不同的环境中有不同的实现时,可以使用多态,抽象出一个接口,子类有不同的实现。 ...
  • digaoyang
  • digaoyang
  • 2014年12月03日 10:13
  • 1245
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工厂模式
举报原因:
原因补充:

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