最新评论
re: 故事与模式(2) 方伍 2008-03-14 17:01
不错,顶一下!继续努力!
re: 故事与模式(2) EverGreen 2008-03-11 19:07
不错,挺生动的!
re: 故事与模式(2) 金色海洋(jyk) 2008-03-11 11:19
我英文很烂的,类名全是英文的,还没有中文注释。
我还是觉得直接用中文来命名看着更方便,当然了,对于高手来说,看中文是很郁闷的事情。
re: 故事与模式(2) 雾里清风 2008-03-11 09:31
谢谢大家的意见,我是故意不说哪种模式的.
让大家去猜测一下,如果这样不太好的好我可以明确下主题.
re: 故事与模式(2) 保权 2008-03-11 09:07
主题可以再明确一点
re: 故事与模式(2) 金色海洋(jyk) 2008-03-11 07:20
不会吧,这都行。
另外建议一下,能不能先说一下,你要说哪个设计模式。好像在说观察者吧。
我说看得这么别扭呢,原来是代码里一行注释都没有!
re: 故事与模式(2) 生鱼片 2008-03-10 20:40
僵化的代码需要重构,落后的中国足球体制是不是也需要重构呢?
_____________________________________________
中国足球,唉~~~
re: 故事与模式(1) 雾里清风 2008-03-09 12:47
@zhkn
PC pc = new PC();
pc.CPU = new IntelCore2();
pc.MainBoard = new ASUS();
pc.VideoCard = new Onda();
pc.Display = new GreatWall();
pc.ShowPC();
这段代码至少违背了两个原则.OCP开闭原则:一旦需求有了变更,要大面积的修改客户代码。LKP最少知识原则:客户程序不需要对电脑内部的结构全面的了解。
填加新电脑时这种方法从填加的代码数量上看不出任何好处,但当你在客户程序中再切回到文档处理的或玩游戏的电脑时就看到好处了。
re: 故事与模式(1) zhkn 2008-03-09 01:44
没有理解这种模式的优点。
假设另一个顾客想要另一种配置,是否要另一个ElmentList?
class ThirdElmentList : PcElementList
{
public override void BuildCPU()
{
PC.CPU = new IntelCore2();
}
public override void BuildMainBoard()
{
PC.MainBoard =new ASUS();
}
public override void BuildVideoCard()
{
PC.VideoCard = new Onda();
}
public override void BuildDisplay()
{
PC.Display = new GreatWall();
}
}
那么,和改动main有什么优点呢?
static void Main(string[] args)
{
PC pc = new PC();
pc.CPU = new IntelCore2();
pc.MainBoard = new ASUS();
pc.VideoCard = new Onda();
pc.Display = new GreatWall();
pc.ShowPC();
}
re: 故事与模式(1) 李子 2008-03-08 15:30
经典。
re: 故事与模式(1) 学习中 2008-03-08 14:49
厉害,看来老兄对模式掌握的透彻啊.
re: 故事与模式(1) bmrxntfj 2008-03-08 14:25
明白什么时候用比怎么用更重要。
园子里有太多这样的文章了。很多人都有种想写点设计模式方面的文章的冲动。
re: 故事与模式(1) zm_r 2008-03-07 22:07
不错,继续
第一次配机CPU和主版给错了哟:)
re: 故事与模式(1) 金色海洋(jyk) 2008-03-07 21:54
怪不得呢,我还没有看过 Builder模式 呢。
re: 故事与模式(1) 雾里清风 2008-03-07 21:42
@金色海洋(jyk)
感谢你的关注,这是Builder模式
真实情况肯定比这复杂多,电脑主版跟其他的部件有一定的耦合。不是靠一个小小的模式能搞定的。
一个复杂的系统如果能把所有变化的可能性考虑进去太难了。我非常同意你的最后一句话。
re: 故事与模式(1) 金色海洋(jyk) 2008-03-07 20:02
没看明白博主讲的是那种模式呢?
另外提点偏硬件的问题,可能和博主的意图不太一制,请原谅。
CPU和主板是要配套的,如果要给加一个判断,某个cpu只能和某某主板配合使用,而不能和某某主板配合使用,因为插槽是不一样的,呵呵。如何处理呢?
cpu有不同的接口(插槽),内存有ddr1 和 ddr2,显卡有AGP 和 PIC-E,这些都要和主板对应上。
这里提出了一个问题,可能你觉得这个问题和你的设计和你要讲解的问题(设计模式)毫不相干,但是他却是一个确实存在的问题。
我说的是后话了,就是说在当初设计的时候,由于种种原因,没有得到客户的某个要求,或者是某种情况,到了测试阶段(或者实施阶段)才发现,那么这时候要如何应对,如何快速、完美的处理。这时最难的吧。
re: 故事与模式(1) Leon916 2008-03-07 17:48
不错,留个记号,下次再来
re: 故事与模式(1) 侯垒 2008-03-07 17:45
哥们写的不错,很佩服.把软件设计讲的如此的即有意思有能学习到东西.
学习了.
re: 故事与模式(1) 张中健 2008-03-07 16:55
楼主精神可佳哦。。。读过后有一点感想:
其中各部件类型组成形式都是稳定,变化的是各部件不同厂商和型号。上文封装的是由不同厂商和型号的各部件组成的功能性不同的机器。正对这点我觉得应该对各部件的功能进行封装(如确定部件一定的量化参数来区分功能),而非厂商。这样稳定功能,选者厂商。这样就从选厂商中获利。
re: 故事与模式(1) 雾里清风 2008-03-07 16:19
碳·碳
这个恐怕要改动里面的具体类了.
milozhao,杨正祎
谢谢,我会继续的.