Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » 技术文章库  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 追MM与设计模式(Factory代码)
milo



发贴: 0
积分: 0
于 2003-12-18 15:18 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
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的设计模式用代码写出来。。




话题树型展开
人气 标题 作者 字数 发贴时间
10690 追MM与设计模式(Factory代码) milo 1926 2003-12-18 15:18
9002 Re:追MM与设计模式(Factory代码) 深蓝 8 2003-12-30 13:36
9020 Re:追MM与远程调用模式 深蓝 706 2003-12-30 13:49
8707 Re:追MM与设计模式(Factory代码) goldwell 10 2004-12-16 19:01
9937 Re:追MM与设计模式(Factory代码) yunchenge 5 2004-12-22 10:41

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923