zoukankan      html  css  js  c++  java
  • C++常见面试题

    1.面向对象的三个基本元素,五个基本原则

     三个基本元素:封装、继承、多态   五大基本原则:单一职责原则(SRP) 、开发封闭原则(OCP)、依赖倒转原则(DIP)、里氏代换原则(LSP)、接口分离原则

     SRP:是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来

        对一个类而言,应该仅有一个引起它变化的原因

     OCP:一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,

     那么应当在不用修改服务端功能代      码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来

        软件实体应该是可以扩展的,但是不可修改

     DIP: 做项目时,发现业务逻辑的高层模块都是一样的,但客户希望使用不同的数据库或存储信息方式,这时就出现麻烦,高层模块和数据库绑定在一起,没办法复用。

        高层模块不应该依赖于底层模块。两个模块都应该依赖于抽象。

        抽象不应该依赖于细节。细节更应该依赖于抽象。

     LSP:  只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

        子类型必须能够替换掉它们的基类型

     ISP:  一个接口应该保证,实现该接口的实例对象可以只呈现为单一的角色;这样,当某个客户程序的要求发生变化,而迫使接口发生改变时,影响到其他客户程序的    可    能性最小

        多个专用接口优于一个单一的通用接口

  • 相关阅读:
    JS定时器做物体运动
    JS做动态表格
    JS如何做2048(详细)
    改变 C/C++ 控制台程序的输出颜色和样式
    The Game Of Life – 数据结构与算法的敲门砖
    适用于 macOS 下 2K 显示器开启 HiDPI 的简便解决方案
    「踩坑记」Android API 判断权限申请结果的闪退问题
    Hello World!
    js 放大镜效果
    js 随机验证码生成及校验
  • 原文地址:https://www.cnblogs.com/daimingming/p/3306933.html
Copyright © 2011-2022 走看看