java与模式,这段代码怎么反映简单工厂模式了?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java与模式,这段代码怎么反映简单工厂模式了?相关的知识,希望对你有一定的参考价值。
Locale locale=Locale.FRENCH;
Date date=new Date();
String now=DateFormat.getTimeInstance(DateFormat.DEFAULT, locale).format(date);
System.out.println(now);
try
date=DateFormat.getDateInstance(DateFormat.DEFAULT, locale).parse("16 nov. 01");
System.out.println(date);
catch(ParseException e)
System.out.println("Parsing exception:"+e);
就是上面那段代码,为什么是简单工厂模式?怎么体现的,谢谢.
java设计模式之简单工厂模式
简单工厂:
简单工厂的优点:
1.去除客户端与具体产品的耦合,在客户端与具体的产品中增加一个工厂类,增加客户端与工厂类的耦合
2.封装工厂类,实现代码平台的复用性,创建对象的过程被封装成工厂类,可以多平台调用这个工厂
简单工厂的缺点:
1.增加新功能的时候,需要修改case代码块,违反了ocp原则(开放—封闭原则)
2.增加客户端和工厂类的耦合
父类:
public abstract class Man { public abstract void Say(); }
子类(学生类):
public class Student extends Man{ @Override public void Say() { System.out.println("student"); }
子类(超人类):
public class SuperMan extends Man{ @Override public void Say() { System.out.println("SuperMna"); }
工厂类:通过type和switch来判断父类类型指向那个相应的子类,从而子类重写相应的父类方法
public class Gc { public Man getMan(String type) { Man man = null; switch (type) { case "学生": man = new Student(); break; case "超人": man = new SuperMan(); break; } return man; }
Test类:
public class Test { public static void main(String[] args) { Gc gc=new Gc(); Man man=gc.getMan("学生"); man.Say(); Man man1=gc.getMan("超人"); man.Say(); }
以上是关于java与模式,这段代码怎么反映简单工厂模式了?的主要内容,如果未能解决你的问题,请参考以下文章