一起学Java(四十九)----- 工厂设计模式

Posted smile学子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起学Java(四十九)----- 工厂设计模式相关的知识,希望对你有一定的参考价值。

不积跬步,无以至千里;不积小流,无以成江海。

 

Java语言基础

 

Java的工厂设计模式

工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类

 

工厂模式的形态

1:简单工厂(Simple Factory)
2:工厂方法(Factory Method)
3:抽象工厂(Abstract Factory)

 

简单工厂(Simple Factory)

又叫静态工厂,是工厂模式三中状态中结构最为简单的。主要有一个静态方法,用来接受参数,并根据参数来决定返回实现同一接口的不同类的实例。

具体的例子:假设一家工厂,几生产洗衣机,有生产冰箱,还有空调等等.

先为所有产品定义一个共同的产品接口:

interface Product{
	
}

 接着我们让这个工厂的所有产品都必须实现此接口:

class Washer implements Product{ 
	public Washer(){ 
		System.out.println("洗衣机被制造了"); 
	} 
} 
	  
class Icebox implements Product{ 
	public Icebox(){ 
	    System.out.println("冰箱被制造了"); 
	} 
} 
	  
class AirCondition implements Product{ 
	public AirCondition(){ 
	    System.out.println("空调被制造了"); 
	} 
}

 一个工厂类,有它来负责生产以上的产品:

public class SimpleFactory {
	
	public static Product factory(String productName) throws Exception{
		if (productName.equals("Washer")) {
			return new Washer();
		}else if (productName.equals("Icebox")) {
			return new Icebox();
		}else if (productName.equals("AirCondition")) {
			return new AirCondition();
		}else {
			throw new Exception("没有该产品"); 
		}
	}

}

 开始下定单:

public static void main(String[] args) {
	// TODO Auto-generated method stub
	try {
		SimpleFactory.factory("Washer");
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

 程序输出:

洗衣机被制造了

 

 

博客借鉴:https://www.jb51.net/article/127702.htm

 

以上是关于一起学Java(四十九)----- 工厂设计模式的主要内容,如果未能解决你的问题,请参考以下文章

零基础学Java—多线程(四十九)

大数据必学Java基础(四十一):面向对象三大特性之一多态(Polymorphism)

Java真的不难(二十九)工厂模式

一起Talk Android吧(第三百四十九回:解析JSON数组四)

一起Talk Android吧(第四百四十九回:修改各种Picker的style)

一起学Java(四十一)----- final关键字