面向对象5大原则

      好的设计,成就好的作品;而僵化的设计,就是牵一发而动全身,只会让你在修改代码是让人想重新再写一遍的冲动吧,游戏开发同样也是如此。下面就着重了解5大原则

    1   单一职责原则

         意思就是说,一个类,应该仅有一个引起它变化的原因。不要将变化不同的职责封装在一起,而应该分离,当我们在做RPG游戏的时候,人物有很多行为,比如人物可以攻击,人物可以受伤害,人物可以发生位置变化,人物可以播放不同的动画及动画的切换等等。对于这些行为,我们应该单独拿出来,类的结构应该是这样的

      class  Attackable  

     {

         //这里面写一些属性,例如攻击力,攻击速度,暴击伤害,暴击频率,法术强度,法术穿透,护甲穿透

        // 最后·这里得写一个攻击的方法,当然这里可以调用人物受伤害的方法。

     }

     class BeAttackable

    {

        //这里写一些属性,例如护甲,魔抗,回血速度,当前血量,总血量等等

       // 这里再写一个受伤的方法

    }

   以此类推就可以把所有RPG游戏需要的类都写出来,这些只能称其为组件。然后用很多组件去拼凑出人物实体,那么一个人物实体不就出来,这样一想做RPG游戏还难吗?是不是也是简单的跟1一样啊

   2  开放封闭原则

       软件开发中应对修改关闭,对扩展开放。同样这也是适用于游戏开发。正如前面我写的那个碰碰猫的那个下落效果一样,如果我可能觉得前面的那些效果不好怎么办?难道去修改已经写好的代码吗?这时我们应该新建一个类,然后去继承“游戏实体落下”这个接口,当我们换效果是,只用生成不同的效果实例类罢了。

   3 依赖倒置

      著名的好莱坞法则:不要调用我们,我们会调用你,这个就是对依赖倒置原则的最好的诠释了。依赖倒置的核心思想就是依赖抽象,具体的说就是:高层模块不应依赖低层模块,它们都应该依赖于抽象,抽象不依赖具体,具体依赖抽象,什么意思呢?举个例子说就是,假如过年你回家,你可能坐飞机回去,也有可能做火车回去,当然也有可能做客运车回去,但是他们的钱肯定不一样喽,你还等这发工资然后看选择哪种方式回家是吧,最近老板心情有时好有时坏,好的时候就直接把工资发给你了也许还有奖金,老板心情不好呢就把你的工资克扣了是吧,也不排除不发给你,老板的心情影响着你的工资,间接就是影响着你的选择回家的方式是吧,所以回家的方式是在不断发生变化的,这几种方式他们有个共性就是出发地和目的地一样,只不过交通方式不一样罢了,j结合到.net中,就是他们的方法名字,参数都一样,只不过方法体里面的东西不一样罢了,所以代码应该是这样的:

     IGoingHome  goingHome = new  TakeTrain(起始点,终点);

     goingHome.ComeBack();

     当我们的交通方式发生变化时,我们只需要改的是new 不同的类,这样变化就转移到了new上面去了,而不是ComeBack这个方法上。

  4  接口隔离原则

      就是接口里面的方法要单一,而不要使用一个大的接口,一个类对另一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口的污染。这个应该很好理解吧

  5  liskov替换原则

      其核心思想是:子类必须能够替换其基类。这个学过面向对象的应该都知道吧。

终于把这个写完了啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值