设计模式(三) 工厂方法模式

来源:互联网 发布:nginx 访问图片 404 编辑:程序博客网 时间:2024/06/02 19:28

工厂方法模式

定义:抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现


优缺点:

优点:客户端不需要负责对象的创建,如果有新对象增加,只需要添加具体类和具体工厂类即可

缺点:增加新对象的话,代码量增大


具体代码如下:


食物抽象类:

public abstract class Food {public abstract void use();}

食品类:

public class Eat extends Food {@Overridepublic void use() {System.out.println("This food can eat");}}

饮料类:

public class Drink extends Food {@Overridepublic void use() {System.out.println("This food can drink");}}

工厂抽象类:

public interface Factory {public Food createFood();}

食物工厂类:

public class EatFactory implements Factory {@Overridepublic Food createFood() {return new Eat();}}

饮料工厂类:

public class DrinkFactory implements Factory {@Overridepublic Food createFood() {return new Drink();}}


测试方法:

public class Main {public static void main(String[] args) {EatFactory e = new EatFactory();DrinkFactory d = new DrinkFactory();Eat eat = (Eat) e.createFood();Drink drink = (Drink) d.createFood();eat.use();drink.use();}}

输出如下:

This food can eat
This food can drink




















0 0