游戏开发之设计原则

今天和大家分享一下在制作游戏的过程中需要使用的面向对象的设计原则,也是面试中面试官常问的问题。

  1. 单一职责原则
    当设计一个类时,我们很容易就会在这个类中不断增加不属于它的方法或者成员,这样会造成该类越来越复杂,越来越难以管理,这对于后期维护难度极大,因此必须严格遵守这项原则,即每个类只去做“它该做的事”

  2. 开闭原则
    简单来说,就是对扩展开发,对修改关闭。我们在实际开发过程中,不管是面临游戏功能的增加还是修改,我们应该尽量少修改之前的代码,而是在此基础上增加代码,同时尽可能少的去修改之前的代码来满足需求

  3. 里氏替换原则
    即:子类必须能替换父类,子类应该实现父类的抽象方法。客户端使用的操作接口由父类定义,客户端在使用的时候,不应将父类引用替换成子类,客户端也不应该知道,目前使用的对象是由哪一个类实现的。
    换句话说,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。例如:我喜欢动物,那我一定喜欢鸟,因为鸟是动物的子类;但是我喜欢鸟,不能据此断定我喜欢动物,因为我并不喜欢狗,虽然它也是动物。
    因此,一般情况都是基类作为参数,实参为子类

  4. 依赖倒置原则
    高层模块不应该依赖于底层模块,两者都应该依赖于抽象模块(尽量写抽象类作为基类)
    抽象接口不应该依赖于实现,而实现应该依赖于抽象模块

  5. 接口隔离原则
    使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。,一个接口的方法尽可能少。因为接口方法过多,又会造成冗余。

  6. 迪米特法则
    一个软件实体应当尽可能少地与其他实体发生相互作用一个软件实体应当尽可能少地与其他实体发生相互作用,即一个类尽量不要知道其他类的东西,换句话说,就是尽量做到解耦合
    这些设计原则都以“高内聚,低耦合”为核心,我们在实际编写程序时,也应围绕这项核心原则,随机应变。

  7. 合成复用原则
    即少用继承多用组合模式

猜你喜欢

转载自blog.csdn.net/qq_36696486/article/details/86425140