-
分析: 一.日前条件分析: (1)多种鸭子 (2)都会游泳,都会叫. 二.设计分析: (1)游泳,呱呱叫.(方法) (2)不同的鸭子.(字符串表示种类) 问题:字符串能够表达足够的信息吗? (3)不同种类鸭子的外观不同. 问题: 1 建类的动机是什么(是什么原因让你想建类)? 类 = 一类东西.定义的类确实能够表示一类东西.如果没有必要建立这个类,最好不要建!(如不是非建不可,就不建!) 如本例: (1)多种鸭子. (2)都会游泳,都会叫. 此条件还不够建立多个类.(不到非不可,就不建!避免增大复杂度) (3)每个鸭子外观不同. 第3个条件分析: (1)如果每个鸭子都能够用相同的字段来表示,就建成一个类足够了. (2)如果不同类的鸭子的外观部分的字段不同.这就必须建成多个类的形式. 解决方案: 1建一个类?(却有了不该有的) 2每个都建一个类?(相同的东西在代码上重复) 3继承方法. 总结: 一.建类的动力. 1 要有足够的原因来支撑,非得建类不行,才建类.(能不建,则不建==存在的强大理由=不这样做不行) 2 它确实表示一类东西. 3 建子类的原因:一个类不能表达所有的东西.各个东西既有相同的,又有不同的. 说明: 所以,上面的鸭子类,一个类不能表达所有种类的鸭子,因为不同种类的鸭子,确实有不同的东西,用一个表达不全. public class Duck { public void Swim() { //实现它,所有的鸭子都一样. } public void Quack() { //子类不会覆盖,就去实现它. } public virtual void Display(); //因为每个鸭子都有,但又不同. } public class RedHeadDuck:Duck { public override void Display() {} } public class MallardDuck:Duck { public override void Display() {} } public class OthersDuck:Duck { public override void Display() {} }
-
策略模式
最新推荐文章于 2024-08-23 17:30:51 发布