1.三大要素 封装,继承,多态

2.五大原则:

(1)单一职责原则(SRP:Single Responsibility Principle)一个类,最好只做一件事,只有一个引起它变化的原因

举例:图书馆和宿舍都有桌有椅,为什么学习还是应该去图书馆?因为宿舍有人看球,有人吃饭,和其他事情,相互干扰,违反了单一职责原则。也就是说 一个类如果继承了多个职责,那么这些职责在并发执行时可能会相互干扰

(2)开放封闭原则(OCP:Open Close Principle)软件实体应该是可扩展的,而不可修改的。也就是说对扩展开放,对修改封闭

举例:你想要变帅,有两种方法。一.穿漂亮衣服,做头发,化妆,这些就是扩展  二.你也可以整容,割双眼皮,隆胸等这就是修改。  之所以对修改关闭,是因为修改是要付出代价的,通常都是危险的。所以说一修改就容易出现Bug,应该对修改关闭

(3)依赖倒置原则(DIP:Dependency Inversion Principle)高层模块不应该依赖于低层模块,应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象

举例:之前我们通过货物交换的方式来买到自己想要的东西,比如我用一个斧子换了一只鸡,但是感觉太麻烦了,所以我们发明了货币,任何一个商品都是有价值的,所谓的交换无非就是按各自的价值量去交换,既然如此那就用货币来代表这个抽象的价值量,其他东西都来跟他交换就可以了    这就是依赖倒置原则

(4)接口隔离原则(ISP:Interface Segregation Principle)客户端不应该依赖他不需要的的接口,一个类对另一个类的依赖应该建立在最小的接口上,应该多使用一些小的接口,而不是使用一些大的接口

1.使用多个专门的接口比使用单一的总接口要好

2.一个接口代表一个角色,不应该将不同的角色给一个接口没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

(5)里氏代换原则(LSP:Liskov Substitution Principle)所有使用基类的地方必须能够透明的使用其子类的对象

举例:人固有一死,列宁是人,所以列宁会死。这句话是对的,这里人是基类,列宁是子类,所以这就是一个里氏转换原则。

转载于:https://www.cnblogs.com/jijiji/p/4855899.html

面向对象的三大要素和五大原则相关推荐

  1. 面向对象:三大特性与五大原则

    面向对象:三大特性与五大原则 面向对象(Object Oriented, OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布 ...

  2. java五大原则_Java面向对象的三大特征和五大原则

    Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...

  3. 面向对象三大特性,五大原则

    以前一直认为程序中的类有使用到封装继承多态就是面向对象设计,其实不然 封装,继承,多态只是面向对象的三大特性,但是在设计程序的时候并不是说类的结构使用到了(或是体现出了)这三个特性就是面向对象, 其实 ...

  4. Java基础:面向对象三大特征、五大原则

    转载请注明出处:jiq•钦's technical Blog 面向对象三大特征: (1)封装(Encapsulation) 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可 ...

  5. java面向对象三大特征及五大原则

    java面向对象 一.java面向对象的三大特征 1.封装(Encapsulation) 封转是指属性私有化 根据需要提供setter和getter方法来访问属性 隐藏具体属性和实现细节,仅对外开放接 ...

  6. java三大特性、五大原则

    java三大特性 1.封装 隐藏类的属性和功能实现,增强类的安全性和简化编程,通过提供公用接口,以特定的访问权限来使用类成员. 2.继承 对共有的特性和行为进行抽取,形成父类,继承就是子类继承父类的特 ...

  7. 面向对象基础:OO的五大原则是指SRP、OCP、LSP、DIP、ISP

    OO的五大原则是指SRP.OCP.LSP.DIP.ISP. 1. SRP(Single Responsibility Principle单一职责原则)  单一职责很容易理解,也很容易实现.所谓单一职责 ...

  8. 一文带你秒懂数据结构与算法的三大要素、五大特征!

    我叫<数据结构与算法>,是计算机世界的四大基石之一. 想来我应该是惹人怜爱的吧(认真脸),因为我仿佛听到了无数个初入计算机世界的同学的呐喊声(

  9. 面向对象三大特性五大原则 + 低耦合高内聚

    面向对象的三大特性是"封装."多态"."继承",五大原则是"单一职责原则"."开放封闭原则"."里氏 ...

最新文章

  1. python读取指定行的txt_【Python】读取txt文件,获取指定行中指定位置数据
  2. 让你的AI绿起来,艾伦研究所提出深度学习效率评估标准Green AI
  3. 兄弟连区块链教程Fabric1.0源代码分析Peer peer根命令入口及加载子命令一
  4. 前端学习(1330):数据库相关概念
  5. java实现并发连接池_java并发实战:连接池实现
  6. 街篮服务器维修时间,全新花式技能系统 《街头篮球》春节前夕版本上线
  7. C++:n个清屏函数(缓冲清屏不闪屏)
  8. C# 清除cookies
  9. 敏捷开发之-MVP最小可行产品
  10. @修改用户(user)信息
  11. 【使用Unity开发Windows Phone上的2D游戏】(1)千里之行始于足下
  12. KMS激活错误解决方法
  13. python免费课程全套-为了学习Python,我汇总了这10个免费的视频课程!
  14. sim7600ce拨号上网
  15. halcon拓展系列—求平面度、段差算子regions_to_plane
  16. 构建供销一体化电商交易体系,数商云S2B2B系统实现锂电池企业全面转型升级
  17. hbase实战技术分享案例【网易视频云技术分享】
  18. 硬件描述语言VHDL
  19. ES6中派生类的Super为什么一定要在使用this前调用
  20. markdown模板笔记

热门文章

  1. 【运行报错】Centos 6 无法使用 yum
  2. 纯CSS3实现旋转风车
  3. HyperLedger Fabric - 超级账本(2.2)启动网络 - 手动
  4. eNSP模拟下的vlanif配置实现(一个汇聚交换机,两个接入交换机)通过三层交换机实现vlan间的三层通信
  5. android 手机资料互传,不同系统手机资料互传so easy
  6. MindSpore实现手写数字识别
  7. htc android sd卡,【HTC T328W】Android系统中SD卡各文件夹功能详解
  8. Word中的mathtype如何按章节插入公式编号
  9. 最高百万年薪,全国多家知名互联网/游戏公司热招 Cocos 人才丨9月岗位
  10. 设置让我们为Express加密