java工厂模式

(1)概念大白话:java工厂模式就是客户端(main函数)要创建对象觉得麻烦就让另外一个叫工厂的类帮它创建,然后自己每次要创建对象就叫工厂帮它弄,举个例子,在没有工厂这个“手下”时,客户端要创建一个红色衣服类 就new一个RedClothes 明天再来个 黄色衣服类YellowClothes又new了一次,不断添加的话可能就会在客户端(main函数)增加很多new对象的语句,为了让客户端爽一点,决定让这些事情叫工厂去管理,我们把这个做法就叫做工厂模式

(2)例子:废话多了点,先跟我花一些时间创建一下几个类,具体代表什么都有看

 代码 最爽的client客户端

package cs.test;

public class Client {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ClothesFactory clothesFactory=new ClothesFactory();
		ClothesInterfaces clothesInterfaces =clothesFactory.getByColor("yellow");
		if(clothesInterfaces!=null)
		{
			clothesInterfaces.color();
		}
	}

}

手下ClothesFactory工厂


package cs.test; public class ClothesFactory { public ClothesInterfaces getByColor(String color) { if("red".equals(color)) { return new RedClothes(); } else if("yellow".equals(color)) { return new YellowClothes(); } else return null; } }

衣服接口,因为每个衣服都有相同特质

package cs.test;

/**
 * 这是一个衣服接口
 * @author hao
 *
 */
public interface ClothesInterfaces {

	//这是一个衣服颜色的方法
	public void color();
}

红色衣服

package cs.test;

public class RedClothes implements ClothesInterfaces {

	@Override
	public void color() {
		// TODO Auto-generated method stub
     System.out.println("这是一个红色衣服");
	}

}

黄色衣服

package cs.test;

public class YellowClothes implements ClothesInterfaces {

	@Override
	public void color() {
		// TODO Auto-generated method stub
		System.out.println("这是一个黄色衣服");
	}

}

  

我这里像工厂类ClothesFactory 写得有点简陋,有时间同学也可以完善一下,我主要是把思想说一下,这里的client要那个对象基本不用费太多心思,想要添加创建一个蓝色衣服类就写一个蓝色衣服类,然后在添加ClothesFactory 添加一个判断就够啦,这就是工厂模式,大家都学会了吗?

  

  

  

原文地址:https://www.cnblogs.com/imfjj/p/6110928.html