上QQ阅读APP看书,第一时间看更新
6.2 小菜扮靓第一版
“先不谈模式,说说你刚才提到的穿衣问题。我现在要求你写一个可以给人搭配不同的服饰的系统,比如类似QQ、网络游戏或论坛都有的Avatar系统。你怎么开发?”
“你是说那种可以换各种各样的衣服裤子的个人形象系统?”
“是的,现在你就简单点,用控制台的程序,写可以给人搭配嘻哈服或白领装的代码。”
“哦,我试试看吧。”
半小时后,小菜的第一版代码出炉。
结构图
“Person”类
class Person { private string name; public Person(string name) { this.name = name; } public void WearTShirts() { Console.Write("大T恤 "); } public void WearBigTrouser() { Console.Write("垮裤 "); } public void WearSneakers() { Console.Write("破球鞋 "); } public void WearSuit() { Console.Write("西装 "); } public void WearTie() { Console.Write("领带 "); } public void WearLeatherShoes() { Console.Write("皮鞋 "); } public void Show() { Console.WriteLine("装扮的{0}", name); } }
客户端代码
static void Main(string[] args) { Person xc = new Person("小菜"); Console.WriteLine("\n第一种装扮:"); xc.WearTShirts(); xc.WearBigTrouser(); xc.WearSneakers(); xc.Show(); Console.WriteLine("\n第二种装扮:"); xc.WearSuit(); xc.WearTie(); xc.WearLeatherShoes(); xc.Show(); Console.Read(); }
结果显示
第一种装扮: 大T恤 垮裤 破球鞋 装扮的小菜 第二种装扮: 西装 领带 皮鞋 装扮的小菜
“哈,不错,功能是实现了。现在的问题就是如果我需要增加‘超人’的装扮,你得如何做?”
“那就改改‘Person’类就行了,”小菜说完就反应过来,“哦,不对,这就违背了开放-封闭原则了。哈,我知道了,应该把这些服饰都写成子类就好了。我去改。”
大鸟抬起手伸出食指对小菜点了点,“你呀,刚学的这么重要的原则,怎么还会忘?”