J2SE学习笔记:设计模式之工厂模式

原创 2013年12月01日 22:15:57

先来个简单工厂模式:

package cn.itcast.factory;

import java.util.Scanner;

public class EasyFactoryDemo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String style = sc.next();
		
		Style s = null;
		s = EasyFactory.getInstance(style);
		s.show();
		
	}

}

interface Style{
	public abstract void show();
	
}

class WinXP implements Style{

	@Override
	public void show() {
		System.out.println("XP风格主题");
		
	}
}

class Win7 implements Style{
	@Override
	public void show() {
		System.out.println("Win7风格主题");
		
	}
}

//为了不修改主程序,增加一个可以根据参数制造所有对象的Factory
class EasyFactory{
	public static Style getInstance(String className){
		Style s = null;
		if("xp".equals(className)) s = new WinXP();
		if("win7".equals(className)) s = new Win7();
		
		return s;
		
		
	}
}

/**
 * 这个只是最简单的工厂模式,工厂模式还可以结合反射和Properties或者xml使用,通过配置文件new不同的对象
 * 总之,最基础的东西要学好。
 * 缺点在于每增加一个子类都要修改主程序
 */

工厂模式:

package cn.itcast.factory;

import java.util.Scanner;

public class FactoryDemo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String style = sc.next();
		
		Style s = null;
		s = EasyFactory.getInstance(style);
		s.show();
	}
}

class Factory{
	public static Style getInstance(String className) throws Exception{
		Style style = null;
		style = (Style)Class.forName(className).newInstance();
		
		return style;
	}
	
}

//增加子类,无需再修改主程序


J2SE学习笔记:设计模式之代理模式

package cn.itcast.staticproxy; /** *代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对...

《设计模式》学习笔记2——简单工厂模式

定义简单工厂模式并不属于GoF(Gang of Four四人组)23中设计模式,有些地方的解释说因为简单工厂模式太简单,所以23中设计模式就没有单独列出。 但是简单工厂模式在实际的应用中却很常用,因...

学习笔记——JAVA设计模式<2>工厂模式

工厂模式 实现了创建者和调用者的分离 详细分类 简单工厂模式 工厂方法模式 抽象工厂模式 面向对象设计的基本原则 ...

工厂模式的小例子——j2sE

  • 2009年04月01日 21:41
  • 2KB
  • 下载

大话设计模式学习笔记--简单工厂模式

简单工厂模式解释:         简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern), ...
  • ykj_fj
  • ykj_fj
  • 2015年04月07日 13:43
  • 300

设计模式学习笔记--抽象工厂模式

二、抽象工厂模式介绍抽象工厂模式(Abstract Factory Pattern)是一个特殊的工厂,它是用于创建其他工厂的工厂,又称超级工厂。属于创建型模式,接口是负责创建一个相关对象的工厂,不需要...

设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)

抽象工厂,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。对于工厂方法来说,抽象工厂可实现一系列产品的生产,抽象工厂更注重产品的组合。 看代码: 7.1.解释 main(),...

【设计模式】学习笔记5:工厂模式(Factory Method)

认识工厂模式 在简单工厂模式的SimpleFactory, 你确实可以创建比萨,但是其他部分:烘烤,切片等可能不同的店会有不同的差异。 如果我们要在其他地方开比萨店,比如在北京开比萨店,那么北京的制作...

java设计模式学习笔记--抽象工厂模式

抽象工厂模式:此模式提供了一个接口,用于创建相关或者依赖对象的家族, 而不需要指定具体的实现类。 抽象工厂模式允许客户使用抽象接口来创建一组相关的产品, 客户类和工厂类分开,客户需要任何产品的时候,只...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2SE学习笔记:设计模式之工厂模式
举报原因:
原因补充:

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