设计模式(三) 工厂方法模式
2016-11-05 15:17
281 查看
工厂方法模式
定义:抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现
优缺点:
优点:客户端不需要负责对象的创建,如果有新对象增加,只需要添加具体类和具体工厂类即可
缺点:增加新对象的话,代码量增大
具体代码如下:
食物抽象类:
食品类:
饮料类:
工厂抽象类:
食物工厂类:
饮料工厂类:
测试方法:
输出如下:
This food can eat
This food can drink
定义:抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现
优缺点:
优点:客户端不需要负责对象的创建,如果有新对象增加,只需要添加具体类和具体工厂类即可
缺点:增加新对象的话,代码量增大
具体代码如下:
食物抽象类:
public abstract class Food { public abstract void use(); }
食品类:
public class Eat extends Food { @Override public void use() { System.out.println("This food can eat"); } }
饮料类:
public class Drink extends Food { @Override public void use() { System.out.println("This food can drink"); } }
工厂抽象类:
public interface Factory { public Food createFood(); }
食物工厂类:
public class EatFactory implements Factory { @Override public Food createFood() { return new Eat(); } }
饮料工厂类:
public class DrinkFactory implements Factory { @Override public 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
相关文章推荐
- 解读设计模式----工厂方法模式(FactoryMethod Pattern)
- 设计模式——工厂方法模式(Factory Method)
- 学习设计模式之旅之 工厂方法模式 推荐
- 我读设计模式之工厂方法模式
- AspectJ实现设计模式(三)——工厂方法模式
- 《星际争霸》与设计模式(2)——工厂方法模式
- 设计模式(Design Patterns)--工厂方法模式(Factory Method)
- .NET设计模式---工厂方法模式
- 设计模式学习-工厂方法模式
- .NET设计模式(5):工厂方法模式(Factory Method)
- 设计模式C#描述——工厂方法模式
- .NET设计模式-工厂方法模式
- 设计模式C#描述——工厂方法模式 mutou23 [原作]
- C#设计模式之工厂方法模式(游泳成绩排名例子)
- .NET设计模式之工厂方法模式
- Dot Net设计模式—工厂方法模式
- .Net设计模式学习笔记(五):工厂方法模式(Factory Method)
- 设计模式C#描述——工厂方法模式
- 设计模式学习--工厂方法模式
- AspectJ实现设计模式(三)——工厂方法模式