J2SE学习笔记:设计模式之工厂模式
2013-12-01 22:15
477 查看
先来个简单工厂模式:
工厂模式:
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; } } //增加子类,无需再修改主程序
相关文章推荐
- 设计模式学习笔记-简单工厂模式
- 设计模式学习笔记(4)抽象工厂
- [设计模式学习笔记二][创建型模式][工厂方法(Factory Method)]
- 学习设计模式笔记之工厂模式1
- 【设计模式】学习笔记5:工厂模式
- 【HeadFirst 设计模式学习笔记】4 工厂模式
- .Net学习笔记----2015-06-27(简单工厂设计模式)
- C++设计模式学习笔记一:简单工厂模式
- 学习笔记:设计模式之工厂模式
- [知了堂学习笔记]设计模式之工厂模式
- 【设计模式】学习笔记4:简单工厂模式(Simple Factory)
- 设计模式学习笔记(四)之工厂模式(Factory)
- 设计模式学习笔记三:简单工厂(Simple Factory)
- 设计模式学习笔记二:简单工厂模式
- 【设计模式学习笔记】工厂模式
- Java设计模式之工厂方法模式——学习笔记
- 【知了堂学习笔记】——设计模式之工厂模式
- java设计模式学习笔记--简单工厂模式
- java设计模式学习笔记-简单工厂模式
- 设计模式学习笔记三:简单工厂(Simple Factory)