美文网首页Unity探路营
【腾讯游戏面试题】面向对象的设计原则是什么?

【腾讯游戏面试题】面向对象的设计原则是什么?

作者: 洪智 | 来源:发表于2021-04-04 21:41 被阅读0次

本文首发公众号洪流学堂。洪流学堂,让你快人几步。

今天分享一个腾讯游戏的面试题:

题目

请说出面向对象的设计原则,并分别简述它们的含义。

参考答案

单一职责原则
一个类只负责一个功能领域中的相应职责。或者说,一个类,应该只有一个引起它变化的原因。

开闭原则
一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。

在定义中,软件实体可以指一个软件模块、一个由多个类组成的局部结构或一个独立的类。

为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。

里氏替换原则
所有引用基类(父类)的地方必须能透明的使用其子类的对象。

里氏代换原则表明,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。

里氏代换原则是实现开闭原则的重要方式之一,在运用里氏代换原则时,应该将父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实现在父类中声明的方法,运行时,子类实例替换父类实例,可以很方便的扩展系统的功能,无须修改原有子类的代码,增加新的功能可以通过增加一个新的子类来实现。

接口隔离原则
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些他不需要的接口。

这里的接口有两种不同的含义:一种是指一个类型所具有的方法特征的集合,仅仅是一种逻辑上的抽象;另一种是指某种语言具体的接口定义,有严格的定义和结构,比如Java语言中的interface。

依赖倒置原则
如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。

抽象不应该依赖于细节,细节应当依赖于抽象。换句话说,要针对接口编程,而不是针对实现编程。

依赖倒转原则要求在程序代码中传递传递参数时或者关联关系中,尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要使用具体类来做这些事情。

在实现依赖倒转原则时,需要针对抽象层编程,而将具体类的对象通过依赖注入的方式注入到其他对象中。依赖注入是指当一个对象要与其他对象发生依赖关系时,通过抽象来注入所依赖的对象。

常用的注入方式有三种:

  • 构造注入:通过构造函数来传入具体类的对象。
  • 设置注入:通过setter方法来传入具体类的对象。
  • 接口注入:通过实现在接口中声明的业务方法来传入具体类的对象。

合成复用原则
尽量使用对象组合,而不是继承来达到复用的目的。

迪米特法则
一个软件实体应当尽可能少地与其他实体发生相互作用。

现在试试这个面试题

【微软游戏面试题】

8个球7个一样重的,有一个偏重,一个天平,如何两次找出偏重的小球?

相关文章

  • 【腾讯游戏面试题】面向对象的设计原则是什么?

    本文首发公众号洪流学堂。洪流学堂,让你快人几步。 今天分享一个腾讯游戏的面试题: 题目 请说出面向对象的设计原则,...

  • JAVA面试题-笔试题(1)书目录

    笔试题 JAVA面试题之面向对象三大特征 JAVA面试题之面向对象五大基本原则 JAVA面试题之面向对象程序设计的...

  • 面向对象设计原则

    面向对象设计原则 面向对象设计原则是设计模式的基础,每个设计模式都符合一一种或多种面向对象的设计原则。 常用的面向...

  • 面向对象设计原则(二)开闭原则

    面向对象设计原则之开闭原则 开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。 开闭原则的...

  • 01-设计模式原则

    面向对象的设计原则 面向对象的设计原则也被称为SOLID。SOLID原则包括单一职责原则、开闭原则、里氏替换原则、...

  • Swift设计模式----目录

    面向对象设计原则: 开闭原则 单一职责原则 依赖倒置原则 接口分离原则 迪米特法则 里氏替换原则 面向对象设计模式...

  • 面向对象设计原则

    面向对象设计原则

  • (1)面向对象的六大原则

    什么是面向对象原则 面向对象原则——oop(object Oriented Principle),遵循原则设计程序...

  • 设计模式原则-开闭原则

    开闭原则(OCP)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实...

  • 面向对象设计原则

    面向对象设计原则 面向对象设计原则概述[https://www.jianshu.com/p/57137d81c55...

网友评论

    本文标题:【腾讯游戏面试题】面向对象的设计原则是什么?

    本文链接:https://www.haomeiwen.com/subject/tsxrkltx.html