我之前写过一篇工厂模式之简单工厂,今天我们来说说工方法厂模式与简单工厂的区别,简单工厂的最大特点在工厂类中包含了逻辑的判断,根据客户的条件进行实例化相应的类,相对去除了唱片的依赖,而工厂方法模式无需要逻辑判断,只是客户端需要则进行实例化相应的子类。就我们之前的代码下进行修改,UML图如下
package com.tankiy.factory;
/**
* <p>Title: 工厂模式</p>
*
* <p>Description: </p>
*
* @author Tankiy
* @version 1.0
*/
public interface FruitFactory {
/**
* 采集水果
*/
public void get();
}
package com.tankiy.factory;
/**
* <p>Title: 工厂模式</p>
*
* <p>Description: </p>
*
* @author Tankiy
* @version 1.0
*/
public class Apple implements FruitFactory {
public void get() {
System.err.println("采集苹果!");
}
}
package com.tankiy.factory;
/**
* <p>Title: 工厂模式</p>
*
* <p>Description: </p>
*
* @author Tankiy
* @version 1.0
*/
public class Bananer implements FruitFactory {
public void get() {
System.err.println("采集香蕉!");
}
}
package com.tankiy.factory;
import junit.framework.TestCase;
/**
* <p>Title: 工厂模式</p>
*
* <p>Description: </p>
*
* @author Tankiy
* @version 1.0
*/
public class FactoryTest extends TestCase {
public void testFactory() {
FruitFactory apple = new Apple();
FruitFactory bananer = new Bananer();
apple.get();
bananer.get();
}
}