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);

就是上面那段代码,为什么是简单工厂模式?怎么体现的,谢谢.

工厂模式 就是用对象不要自己new 了,要先创建其对象的工厂,DateFormat就是,getDateInstance是得到该对象的一个实例(就是得到你想要的对象),然后就可以继续使用对象的方法做事了 参考技术A 工厂的体现就是这个DateFormat实例的获取

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与模式,这段代码怎么反映简单工厂模式了?的主要内容,如果未能解决你的问题,请参考以下文章

Java代码实现设计模式之工厂模式

用java 编写程序写出简单的工厂模式?

Java 工厂模式

完整案例分析再加知识整合——艾特简单工厂模式,超详细的

设计模式Java 工厂模式与应用

工厂模式