追MM与设计模式(Factory代码)

 FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口
味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。
麦当劳和肯德基就是生产鸡翅的Factory

下面是我写的一个代码For Factory

//鸡翅膀基类(ChickenWing.java)
public abstract class ChickenWing
{
}

//麦当劳鸡翅膀子类(McChickenWing.java)
public class McChickenWing extends ChickenWing
{
}

//KFC鸡翅膀子类(KfcChickenWing.java)
public class KfcChickenWing extends ChickenWing
{
}

//麦当劳工厂
public class McFactory
{
public ChickenWing getChickenWing()
{
System.out.println("This is a Mcdonalds ChickenWing!");
return new McChickenWing();
}
}

//KFC工厂
public class KfcFactory
{
public ChickenWing getChickenWing()
{
System.out.println("This is a KFC ChickenWing!");
return new KfcChickenWing();
}

}

//测试java文件
public abstract class Test
{

public static void main(String[] args)
{
//new a Mc Factory
McFactory objMcFactory=new McFactory();
//new a Kfc Factory
KfcFactory objKfcFactory=new KfcFactory();

//if you and PLMM in Mcdonalds,she want to eat ChickenWing
System.out.println("You and PLMM in Mcdonalds,She Want to eat ChickenWing.
...");
System.out.print("ChickenWing have be sent to you: ");
objMcFactory.getChickenWing();
//if you and PLMM in KFC,she want to eat ChickenWing
System.out.println("You and PLMM in KFC,She Want to eat ChickenWing....");

System.out.print("ChickenWing have be sent to you: ");
objKfcFactory.getChickenWing();

}

}

输出结果:
You and PLMM in Mcdonalds,She Want to eat ChickenWing....

ChickenWing have be sent to you: This is a Mcdonalds ChickenWing!

You and PLMM in KFC,She Want to eat ChickenWing....

ChickenWing have be sent to you: This is a KFC ChickenWing!

工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。
消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如
:如何创建及如何向客户端提供

所以如果plmm要吃可乐或者薯条的话,除了客户端不变以外,工厂+产品都要变化,
不过这比硬编码好很多。。。
以后争取把所有追plmm的设计模式用代码写出来。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值