一 六大原则叫什么我已经忘了

二 六大原则到底是什么以及有什么作用,一句话:教你在用面相对象编程语言编程的时候如何更好地利用面向对象编程语言的特性。

例如:如果你使用的是java语言的话。

1 最基本的三大特性:封装  继承  多态

2 java的高级特性:反射   多线程等等。(没有反射哪来的什么spring ioc啊)

三 六大原则告诉我们怎么做呢:

1 通用的原则:所有所有语言都应该遵循的一个(即使是面向过程语言),开闭原则,对修改关闭对扩展开放。

最简单的例子:新的需求来的时候,需要在方法里面加一个参数,千万不要就增加一个参数,即使用最笨的方法重载这个方法,也不要去直修改这个方法。

2 架构方面的原则:依赖于抽象,不依赖于具体。原因是:抽象更为稳定。核心是使用:抽象类和接口。

3 抽象类设计的原则:子类替换父类没有任何影响。这也就是说:父类的设计要高度抽象,子类尽量不要去重写父类的方法,如果有大量的重写,请把这个方法放到接口里去。

4 接口设计的原则:子类不要去实现自己不需要的方法。这也就是说:接口的设计不能太大,免得子类会实现自己不需要的方法。

5 类的设计原则(2个):(1)单一职责 (2)最小依赖 。  最小依赖的最典型应用:依赖注入。

四 设计模式:

23种设计模式是这六大原则综合起来的最佳解决方案。所以一开始就去看设计模式,没有理解面向对象的话,往往只能是理解设计模式本身,最重要的还是理解面向对象语言本身。所以:不谈面向对象就直接讲设计模式,那是在耍流氓。

面向对象的六大原则(原则都是唬人 关键在于理解面向对象)相关推荐

  1. 【0718作业】收集和整理面向对象的六大设计原则

    面向对象的六大设计原则 (1)单一职责原则--SRP (2)开闭原则--OCP (3)里式替换原则--LSP (4)依赖倒置原则--DIP (5)接口隔离原则--ISP (6)迪米特原则--LOD - ...

  2. [转]面向对象的六大原则

    现在编程的主流语言基本上都是面向对象的.如C#,C++,JAVA.我们在使用时,已经构造了一个个的类.但是往往由于我们在类内部或外部的设计上存在种种问题,导致尽管是面向对象的语言,却是面向过程的逻辑, ...

  3. 面向对象六大设计原则上

    @TOC面向对象六大设计原则 最近准备java面试,发现SSM框架里蛮多知识点,比如Spring中IOC,DI来源于面向对象的六大原则,了解六大原则有助于更深入理解java的设计原理.网上资料很多,整 ...

  4. 走向灵活软件之路-面向对象的六大原则

    前言 关于设计模式六大设计原则的资料网上很多,但感觉很多地方解释地都太过于笼统化,特此再总结一波. 优化第一步-单一职责原则SRP 单一职责原则(Single Responsibility Princ ...

  5. 面向对象六大设计原则

    目录 1 .单一职责(Single Responsibility Principle) 2 .开闭原则(Open Close Principle) 3.里氏替换原则(Liskov Substituti ...

  6. 面向对象的六大原则之 —— 迪米特原则

    学习了何红辉.关爱民写的<Android设计模式>,对于面向对象的六大原则有进一步的理解,特此根据自己的理解记录总结一下 什么是迪米特原则 也称为最少知识原则,意思就是一个对象应该对其他对 ...

  7. [转] 设计模式的六大设计原则

    转载说明: 感谢原作者吕震宇老师的分享. 原文参考链接:https://www.cnblogs.com/zhenyulu/category/6930.html? 本次转载只用于个人学习使用,并不涉及商 ...

  8. 引用防删——JAVA设计模式总结之六大设计原则

    JAVA设计模式总结之六大设计原则 从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇:第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语.于是决定在看一篇,到9 ...

  9. 设计模式之六大设计原则【入门】

    设计模式之六大设计原则 1 开闭原则 Open Closed Principle,OCP 1.1 概念 1.2 软件实体 1.3 开闭原则的作用 2. 单一职责原则 Single responsibi ...

最新文章

  1. Ubuntu定时任务crontab命令介绍
  2. 1.1.3 以类为单位的编程思想
  3. python 语言教程(3)变量之字典
  4. 常用的位操作:置位、清零与测试
  5. Spring aop 记录操作日志 Aspect 自定义注解
  6. Vue-router(二) 子路由(嵌套路由)
  7. 链表逆序(JAVA实现)
  8. xcode动态改变窗口大小_详细的理论要点+3个经典案例,帮助你深入理解动态面板...
  9. CSS 设置列表格式
  10. Flutter修仙传第一章:从Form入手学会组件使用
  11. python数据结构剑指offer-链表中环的入口结点
  12. 面向对象三大特征之多态——Java笔记(七)
  13. 协整理论与面板数据分析
  14. 数控铣削图案及编程_数控铣削编程与操作设计有全套图纸.doc
  15. 动画 | 什么是红黑树?(与2-3-4树等价)
  16. LabVIEW动态数据交换DDE
  17. cookiecutter笔记
  18. 哥德巴赫猜想python
  19. EtherCAT从站协议栈代码笔记之ecat_def.h
  20. 阿里云道哥:我曾经是饱受网络攻击摧残的创业者,现在我要帮他们顶住

热门文章

  1. Vue 2.x 使用高德地图JS API 2.0加载起点终点路径轨迹
  2. 1-丁基咪唑四氟硼酸盐([HC4im]BF4)|1-丁基-3-甲基咪唑四氟硼酸盐(BMI-BF4)|1-甲基3-丁基咪唑六氟磷酸盐([C4mim]PF6)
  3. 288所高校开大数据专业,你母校out了吗?
  4. 小米6x查看手机IP
  5. 解决Ubuntu18.04使用WPS文字时输入法候选列表无法跟随问题
  6. cursor_sharing设置为similar 的弊端
  7. 计算机网路之数据链路层笔记
  8. 2022年,我们为什么要学习C++?
  9. Linux userdel命令详解
  10. Notepad++光标变成下划线,怎么取消