码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-05-22 19:46:40      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:空调被   method   rgs   程序   一个   设计模式   name   抽象   return   

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

 

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(四十九)----- 工厂设计模式

标签:空调被   method   rgs   程序   一个   设计模式   name   抽象   return   

原文地址:https://www.cnblogs.com/smilexuezi/p/12938860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!