大话设计模式八:工厂方法模式(雷锋依然在人间)

发布时间:2016-12-10 11:38:06 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"大话设计模式八:工厂方法模式(雷锋依然在人间)",主要涉及到大话设计模式八:工厂方法模式(雷锋依然在人间)方面的内容,对于大话设计模式八:工厂方法模式(雷锋依然在人间)感兴趣的同学可以参考一下。

工厂方法模式是简单工厂模式的抽象和扩展。 工厂方法模式是由客户端来决定实例化那一个工厂实现类。 在简单工厂类中如果要增加功能改动的是工厂类,但在工厂方法模式中要改的就是客户端了,由客户端决定 package Factory; public class MainClass { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub LeiFeng xueLeiFeng = new Undergraduate(); xueLeiFeng.BuyRice(); xueLeiFeng.Sweep(); xueLeiFeng.Wash(); simpleFactory(); factory(); } private static void factory() { IFactory factory = new UndergraduateFactory(); LeiFeng student = factory.CreateLeiFeng(); student.BuyRice(); student.Sweep(); student.Wash(); } private static void simpleFactory() { LeiFeng studentA = SimpleFactory.CreateLeiFeng("学雷锋的大学生"); studentA.BuyRice(); LeiFeng studentB = SimpleFactory.CreateLeiFeng("学雷锋的大学生"); studentB.Sweep(); LeiFeng studentC = SimpleFactory.CreateLeiFeng("学雷锋的大学生"); studentC.Wash(); } } class LeiFeng { public void Sweep() { System.out.println("sweep the floor"); } public void Wash() { System.out.println("wash clothes"); } public void BuyRice() { System.out.println("buy rice"); } } class Undergraduate extends LeiFeng {} class Volunteer extends LeiFeng {} class SimpleFactory { public static LeiFeng CreateLeiFeng(String type) { LeiFeng result = null; switch (type) { case "学雷锋的大学生": result = new Undergraduate(); break; case "社区志愿者": result = new Volunteer(); break; } return result; } } interface IFactory { LeiFeng CreateLeiFeng(); } class UndergraduateFactory implements IFactory { @Override public LeiFeng CreateLeiFeng() { return new Undergraduate(); } } class VolueteerFactory implements IFactory { @Override public LeiFeng CreateLeiFeng() { return new Volunteer(); } }

上一篇:OftenTap亲密度通讯录: 联系人亲密度管理, 群发短信/邮件, 快捷拨号器
下一篇:USB入门系列之二 —— USB的连接模型[图]

相关文章

相关评论