OOD 面向对象面试必读 | 面向对象设计的SOLID原则

2018 年 8 月 8 日 九章算法








S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。


简写 全拼 中文翻译
SRP The Single Responsibility Principle 单一责任原则
OCP The Open Closed Principle 开放封闭原则
LSP The Liskov Substitution Principle 里氏替换原则
DIP The Dependency Inversion Principle 依赖倒置原则
ISP The Interface Segregation Principle 接口分离原则


Steve Smith在5月份的微软TechED 2009上有个SOLIDify Your ASP.NET MVC的讲座, derick.bailey的SOLID Development Principles – In Motivational Pictures很好的解释了SOLID原则。


01

单一责任原则


当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。


2

开放封闭原则


软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象、最难理解的一个。



3

里氏替换原则


当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系


4

依赖倒置原则


  1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象

  2. 抽象不应该依赖于细节,细节应该依赖于抽象


5

接口分离原则


不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。



这几条原则是非常基础而且重要的面向对象设计原则。正是由于这些原则的基础性,理解、融汇贯通这些原则需要不少的经验和知识的积累。上述的图片很好的注释了这几条原则。



5

相关课程推荐


九章算法《OOD面向对象设计专题班》,以面试求职为导向,全面讲解设计模式,整理深度剖析所有IT技术面试中的高频OOD面试题,包括,停车场设计、酒店预定系统设计、Black Jack 棋牌设计等等。


免费试听内容:

  • 什么是面向对象设计(OOD, Object oriented design)

  • OOD 面试中常见面试题总结、分类

  • 如何评判一次OOD面试的表现是好是坏

  • 高频OOD面试题讲解


免费试听时间:

美西时间8月12日周日 18:30-20:30

美东时间8月12日周日 21:30-23:30

北京时间8月12日周一 09:30-11:30 a.m 

长按二维码,报名免费试听:



转载自:http://www.cnblogs.com/shanyou/archive/2009/09/21/1570716.html

             

 


更多精彩内容
  • 回复“简历”,查看简历撰写指南,获取“简历模板”

  • 回复“冷冻期”,查看北美各大IT企业冷冻期信息和注意事项

  • 回复“Career”, 查看Caireer Fair 攻略 check list

  • 回复“薪资”,查看北美各大IT企业New Grades Engineer 薪资水平;

  • 回复“项目”,查看7-14天可以搞定的小项目推荐

  • 回复“评分”,查看系统设计评分指南

  • 回复“behavior”,查看behavior interview指南

  • 回复“晋升”,查看Engineer晋升机制 


九章算法 | 帮助更多中国人找到好工作


《九章算法班》
美西 8月11日 周六 18:30-20:30 p.m
北京 8月12日 周日 09:30-11:30 a.m


《人工智能集训营》
美西 8月12日 周日 19:00-21:00 p.m
北京 8月13日 周日 10:00-12:00 a.m


面向对象专题班》

美西 8月12日 周日 18:30-20:30 p.m

北京 8月13日 周一 09:30-11:30 a.m


正在报名中!

报名登陆官网 www.jiuzhang.com

登录查看更多
1

相关内容

迄今为止,产品设计师最友好的交互动画软件。

【新书】图神经网络导论,清华大学刘知远老师著作
专知会员服务
361+阅读 · 2020年6月12日
还在修改博士论文?这份《博士论文写作技巧》为你指南
打怪升级!2020机器学习工程师技术路线图
专知会员服务
98+阅读 · 2020年6月3日
知识图谱本体结构构建论文合集
专知会员服务
106+阅读 · 2019年10月9日
网上搜不到的Airbnb面试资料
九章算法
12+阅读 · 2019年8月22日
面向对象:等你来撩
前端大全
5+阅读 · 2019年7月26日
准备了3个月,终于拿到了计算机视觉岗的offer
计算机视觉life
5+阅读 · 2019年6月14日
OOD&系统设计大礼包 | 价值 $199 福利免费领取!
九章算法
12+阅读 · 2019年4月28日
每个架构师都应该培养业务思维
InfoQ
3+阅读 · 2019年4月21日
【推荐】决策树/随机森林深入解析
机器学习研究会
5+阅读 · 2017年9月21日
Arxiv
35+阅读 · 2019年11月7日
A Sketch-Based System for Semantic Parsing
Arxiv
4+阅读 · 2019年9月12日
Deep Learning in Video Multi-Object Tracking: A Survey
Arxiv
57+阅读 · 2019年7月31日
Arxiv
25+阅读 · 2018年1月24日
VIP会员
相关资讯
网上搜不到的Airbnb面试资料
九章算法
12+阅读 · 2019年8月22日
面向对象:等你来撩
前端大全
5+阅读 · 2019年7月26日
准备了3个月,终于拿到了计算机视觉岗的offer
计算机视觉life
5+阅读 · 2019年6月14日
OOD&系统设计大礼包 | 价值 $199 福利免费领取!
九章算法
12+阅读 · 2019年4月28日
每个架构师都应该培养业务思维
InfoQ
3+阅读 · 2019年4月21日
【推荐】决策树/随机森林深入解析
机器学习研究会
5+阅读 · 2017年9月21日
Top
微信扫码咨询专知VIP会员