1. CPU 种类 1G 2G 3G
2. 内存 种类 256M 512M 1G
3. 硬盘 种类 500G 1T 2T
组成一台电脑, 每样选一个,用什么设计模式好呢 设计模式一般是被用来解决日后的扩展问题,很多模式如工厂等都是为了将扩展的地方抽出来,从而使得日后的改变可以尽量小的改动或甚至不改动代码(所谓的开放-封闭原则)。所以在使用设计模式前,最好能先分析下你的场景中哪些是可能存在的变化点。
假如变化点是可以向机箱中放入不同的组件,也就是可以动态的扩展机箱的能力,那么可以参考使用装饰者模式(参考Head First中的星巴兹咖啡,http://www.uml.org.cn/sjms/200812292.asp),当然可以结合工厂来创建具体的类:
public abstract class computercomp
{
public string Description{get;set;}
public abstract double cost()
{
return 0;
}
}
public class CPU1 : computercomp
{
computercomp _comp;
public CPU1(computercomp comp)
{
_comp = comp;
}
public override double Cost()
{
return 200 + _comp.Cost();
}
}
public class HD500: computercomp
{
computercomp _comp;
public HD500(computercomp comp)
{
_comp = comp;
}
public override double Cost()
{
return 700 + _comp.Cost();
}
}
public class Memory256: computercomp
{
computercomp _comp;
public Memory256(computercomp comp)
{
_comp = comp;
}
public override double Cost()
{
return 50 + _comp.Cost();
}
}
public class Case: computercomp
{
public override double Cost()
{
return 200;
}
}
//...
public static void main()
{
computercomp comp = new Case();
comp = new Memory256(comp);
comp = new CPU1(comp);
comp = new HD500(comp);
double price = comp.Cost();
}