java设计模式之简单工厂模式

原创 2016年08月29日 11:32:13

==============最近人有点懈怠了,在此告诫下自己====================

设计模式中的工厂模式,顾名思义就是一个生产对象的加工工厂.想想我们日常生活中的工厂,只需要调用方的简单控制就可以生成我们所需要的相同类型不同实现的对象

工厂模式优点:省去调用者直接创建对象,而且如果增加不同的实现对象,调用者不变,只需要修改工厂示例即可.

工厂模式缺点:工厂类中集中了所有创建实例逻辑,如果存在多层次结构,代码会很臃肿.而且如果工厂类出了问题,那么所有引用则不可用

===================代码示例========手机工厂==========================

实例接口类

/**
 * @类名 Phone.java
 * @作者  zx
 * @创建日期 2016年8月29日
 * @描述 实体类接口
 * @版本 V 1.0
 */
public interface Phone {
	void call();
}

两种实现

/**
 * 
 * @类名 OldPhone.java
 * @作者  zx
 * @创建日期 2016年8月29日
 * @描述 老式手机
 * @版本 V 1.0
 */
public class OldPhone implements Phone{

	@Override
	public void call() {
		System.out.println("这里添加旧手机的业务");
	}
}
/**
 * @类名 NewPhone.java
 * @作者 zx  
 * @创建日期 2016年8月29日
 * @描述 新式手机
 * @版本 V 1.0
 */
public class NewPhone implements Phone{

	@Override
	public void call() {
		System.out.println("这里添加新手机的业务");
	}
}

工厂类

public class PhoneFactory {
	public static Phone getInstance(String type){
		if("old".equals(type)){
			return new OldPhone();
		}else if("new".equals(type)){
			return new NewPhone();
		}else{
			throw new RuntimeException("没有对应实例");
		}
	}
}

测试

public class TestMain {
	public static void main(String[] args) {
		String type = "new";
		Phone instance = PhoneFactory.getInstance(type);
		instance.call();
	}
}

运行代码结果:这里添加新手机的业务

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

java设计模式学习笔记之计算器中的简单工厂模式

java设计模式学习笔记之计算器中的简单工厂模式 最近在重温设计模式,偶然看到程杰的《大话设计模式》写的非常不错、通俗易懂,之后的一系列都是学习的笔记,仅此记录。 一、情景回放:某校大二软件工程专...
  • qq137722697
  • qq137722697
  • 2016年11月30日 21:56
  • 2283

设计模式——简单工厂(又叫静态工厂方法,不属于GOF23中设计模式)

简单工厂模式属于类的创新型模式,又叫静态工厂方法模式,是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 —————————————————————————————————...
  • sunqingzhong44
  • sunqingzhong44
  • 2016年07月01日 10:01
  • 242

简单工厂设计模式的好处

简单工厂:单独的,创建对象,返回对象。 在一个方法中创建好对象,调用此方法即根据传入参数可获得到不同需求的对象,我曾纳闷为什么要单独创建对象,为什么不直接new对象使用? 唉,好处就在这儿,咋想想...
  • Java_Dmz
  • Java_Dmz
  • 2017年09月02日 13:58
  • 235

java设计模式 实验一-简单工厂模式

**简单工厂模式** 班级:软件工程1班 姓名:张雨 学号:2014416558 一、实验目的: 简单工厂设计模式应用 二、实验内容: 题目(一): 使用简单工厂模式模拟女娲(N...
  • a1120575649
  • a1120575649
  • 2016年09月23日 23:20
  • 783

设计模式(四)简单工厂模式

简单工厂模式属于创建型模式又叫做静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类的实例。...
  • itachi85
  • itachi85
  • 2016年02月12日 17:19
  • 8289

C++ 设计模式之——简单工厂模式(SimpleFactoryPattern)

简单工厂模式   简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建...
  • nie2314550441
  • nie2314550441
  • 2016年02月18日 17:40
  • 423

读秦小波《设计模式之禅》 -- 工厂模式

设计模式是一种非常有用的编程技巧,它对于代码的重构有些非常重要的作用,对于软件开发人员来说,需要理解并尝试着使用这些设计的方法。      个人感觉《设计模式之禅》这本书中讲解的非常具体,每个模式都配...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2014年12月25日 08:36
  • 2731

简单工厂模式的UML类图与源码实现

原文:http://hlzhou.iteye.com/blog/551492 源码:Operation类 Java代码   package O...
  • lan861698789
  • lan861698789
  • 2014年02月28日 21:03
  • 2377

python实现常见的设计模式-简单工厂模式

《大话设计模式》这本书中各种设计模式的python代码实现。简单工厂模式的UML图 工厂模式在很多场景都可以应用,运用类的继承、多态等强大的特点可以有效减少代码冗余,提高代码的高可复用性。#! /u...
  • fly9006
  • fly9006
  • 2017年02月19日 21:13
  • 364

C语言实现设计模式之简单工厂模式(无内存泄露)

最近工作之余研究一下设计模式细节方面的东西,很多经典的东西需要一遍遍去读、去理解,设计模式就是这样的程序设计的经典之作。 我一直坚信学习是把书读薄,又把书读厚的过程,最终达到游刃有余。 言归正传,接下...
  • mayuming77
  • mayuming77
  • 2014年09月06日 15:46
  • 479
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java设计模式之简单工厂模式
举报原因:
原因补充:

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