(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 添加一个判断就够啦,这就是工厂模式,大家都学会了吗?