java 工厂模式

来源:互联网 发布:js字符串html转义 编辑:程序博客网 时间:2024/06/14 08:51

工厂模式

工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。


java 例子如下:

package com.lyis.patterns.factory;/** * 水果接口 */public interface Fruit {/** * 获取水果名称 *  * @return */public String getFruitName();/** * 获取水果描述 *  * @return */public String getDescription();}

package com.lyis.patterns.factory;/** * 苹果(具体水果)  */public class Apple implements Fruit {public String getFruitName() {return "Apple";}public String getDescription() {return "Tastes great!";}}

package com.lyis.patterns.factory;/** * 葡萄(具体水果) */public class Grape implements Fruit {public String getFruitName() {return "Grape";}public String getDescription() {return "Very sweet!";}}

package com.lyis.patterns.factory;/** * 水果工厂 */public class FruitFactory {public static Fruit getFruit(String name) {if ("apple".equals(name)) {return new Apple();}if ("grape".equals(name)) {return new Grape();}return null;}}

package com.lyis.patterns.factory;/** * 工厂模式测试 */public class Test {/** * 输出水果信息 *  * @param fruit *            水果对象 */public void display(Fruit fruit) {if (fruit == null) {return;}System.out.println("Name: " + fruit.getFruitName());System.out.println("Desc: " + fruit.getDescription());}public static void main(String[] args) {Test test = new Test();// 获取苹果对象Fruit fruit = FruitFactory.getFruit("apple");test.display(fruit);// 获取葡萄对象fruit = FruitFactory.getFruit("grape");test.display(fruit);}}