6.遛弯儿撞上个创世神-- 原型模式
这次讲述一个离奇的故事。
好事多磨。“山蛋蛋开花红艳艳”公司的发展也不是一帆风顺的。
在那个炎热的夏天,农民乙接待了一个来自省城的大客户。
该客户叫骉财,生的是膀大腰圆,气定神闲。因其名字难认,道中人又给他起了别名,唤作“神行太保”。
在那个令人难忘的洽谈会上:
“一百万罐玉米酱,十天完成,能否?”,骉财问。
众企业家要么愁眉莫展,要么唉声叹气,要么低头不语。
农民乙粗略的算了一下,如果这单成功,至少能为“山蛋蛋开花红艳艳”公司谋取到冲出县城,走向省城乃至全国的资本和机会,拼了!
想到这里,农民乙拍案大呼:“能!”。
最终,农民乙以他憨厚朴实敢拼敢闯的心态和“山蛋蛋”公司不可小视雄厚俊猛的实力获得了骉财的信任以及专家团的信任,该单中标,农民乙签下了生死状。
今天说说原型模式。
---------------------------------------------------------------------------------------------------------------------------
先送上图例。
为了完成合同上的任务,农民乙可是煞费苦心。
他一方面让苦娃多招些劳力,一方面鼓励干活的工人加班加点。另外,他还制定了详细的生产计划。
可这一天十万罐的生产指标实在不是个小数目,工人们都熬红了眼,农民乙看在眼里,痛在心里。
“屋漏偏遇雷暴雨”,数个日夜以来的生产,工人们的抱怨不说,更可气的是,酱厂的大批机器出现了故障。
这下可郁闷了,如果规定时间拿不出酱来,按照合同,骉财要勒索赔款。
如此一来,工人们的薪水就没有了保障,“山蛋蛋”公司就要面临经济危机金融风暴。
农民乙烦闷至极,那天晚上,他早早出了酱厂,到小河边散步,脑子里迅速思索着解决问题的办法。
良久,农民乙懊恼的坐下来,思绪紊乱。
他想,难道我是江郎才尽了吗?难道真的回天无术了吗?我怎么给四邻八舍的乡亲们交差呢?我怎么对的起日夜为我辛苦劳作的工人呢?
人呐,往往是在走头五路时,命运会出现转机。那天就是。
须臾,河面上霞光万丈。出来位光纤靓丽的人儿。
农民乙定睛一看,好炫,此人气宇非凡,不过装束好像远古之人。
没等农民乙开口,此人轻启朱唇,说道:“我是上古神仙女娲,知你有难,特来助你一臂之力。你我有缘,不必太客气。当初我造人时,也遇到和你一样的难题,我计划七天造万物,可到了最后一天,我发现已经快来不及造人了,于是,我发明了一件法宝,你且看。”
说着,女娲从她包里拿出一样宝物,绿油油,发出莹莹的光。
农民乙睁大了眼睛,原来是个藤条,他抓耳挠腮,这个怎么用呢?女娲说,“用此物点你想要的一样物,而后甩,无数个那样的东西即出”。
“此物你只能在危难时刻使用,切忌切忌!……”
说完,又是霞光万丈,藤条落地,女娲消失的无影无踪。
农民乙给闪电描述这个故事的时候,闪电愕然……
class Jar
{
public Jar()
{ }
public string show()
{
return "变出来一个罐子!";
}
}
class Lid
{
public Lid()
{ }
public string show()
{
return "变出来一个盖子!";
}
}
class Catsup
{
public Catsup()
{ }
public string show()
{
return "变出来一些酱汁!";
}
}
//女娲说我有法宝
abstract class Talisman
{
private Jar jar;
private Lid lid;
private Catsup catsup;
public Talisman(Jar jar, Lid lid, Catsup catsup)
{
this.jar = jar;
this.lid = lid;
this.catsup = catsup;
}
public Jar Jar
{
get { return jar; }
}
public Lid Lid
{
get { return lid; }
}
public Catsup Catup
{
get { return catsup; }
}
public abstract Talisman Clone();
}
//这个法宝具体是什么呢?是藤条
class Cane : Talisman
{
public Cane(Jar jar, Lid lid, Catsup catsup)
: base(jar, lid, catsup)
{
}
//甩出来
public override Talisman Clone()
{
return (Talisman)this.MemberwiseClone();
}
}
static void Main(string[] args)
{
Jar j = new Jar();
Lid l = new Lid();
Catsup c = new Catsup();
Cane a = new Cane(j,l,c);
Cane b1 = (Cane)a.Clone();
Cane c1 = (Cane)a.Clone();
Cane b2 = (Cane)a.Clone();
Cane c2 = (Cane)a.Clone();
Cane d1 = (Cane)a.Clone();
Console.WriteLine("女娲的法宝真厉害哇: {0}", a.Jar.show());
Console.WriteLine("女娲的法宝真厉害哇: {0}", b1.Jar.show());
Console.WriteLine("女娲的法宝真厉害哇: {0}", c1.Jar.show());
Console.WriteLine("女娲的法宝真厉害哇: {0}", b2.Lid.show());
Console.WriteLine("女娲的法宝真厉害哇: {0}", c2.Lid.show());
Console.WriteLine("女娲的法宝真厉害哇: {0}", b2.Lid.show());
Console.WriteLine("女娲的法宝真厉害哇: {0}", d1.Catup.show());
Console.Read();
}
有道是车到山前必有路,好人呢总有好报,农民乙凭借着这件法宝,顺利度过了难关,为“山蛋蛋开花红艳艳”公司迎来了美好的如日中天的发展前景。
骉财挤眉弄眼地对农民乙说,你丫真有能耐!