策略模式

    • 分析:        一.日前条件分析:               (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()        {} }                         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值