1、什么是设计原则?

  • 设计原则就是面向对象的原则嘛,即:OOP原则
  • 换句话说:就是为了处理类与类之间的关系( 包括接口、类中的方法 )

2、OOP设计原则有哪些?

  • 1)、开闭原则:就是指对拓展开放、对修改关闭 —— 这个在我的javaSE的面向对象中说明过了

  • 2)、里式替换原则:继承必须确保父类的性质在子类中仍然成立

    • 这个体现在什么地方?方法的重写嘛,因此:子类继承了父类,如果父类的方法不能满足自己的需求,那么最好别使用重写,而是保留父类中的方法,子类进行重载编写( 当然:我们一般都是重写_,但是有这个要求,那就尽量还是照顾一下子类的老爹吧 )
  • 3)、依赖倒置原则:这个在我的javaSE的面向对象篇中也说过了,就是他喵的“面向接口编程”嘛

    • 就是做项目之前先要做的是:抽取出每个模块应该有的接口是什么,管他三七二十一,先把接口抽取出来
  • 4)、单一职责原则:就是不能让类太饱和了

    • 什么意思?简单得很,就是一个类所具有的属性不能太多了,因此:也就成了这个类的对象身上所具有的属性不能太重了,换言之:就是一个方法只做一件事,这样我们需要传递对象时,这个对象就很方便了,不然对象身上有很多属性其实并没有用到,但是一样要传过去,这就增加了麻烦嘛
  • 5)、接口隔离原则:这个和单一职责很像,单一职责是约束类的,而这个接口隔离就是约束接口的

    • 意思就是:接口最好细分一下,如:鸟类接口,这种就应该再细分,鸟类也有可以飞的和不可以飞的涩,不能把所有的鸟类都弄成一个接口嘛
  • 6)、迪米特原则:这个原则有一句话 ———— 只与朋友说话,不可以和陌生人交流

  • 7)、合成复用原则:这个在我的JavaSE的面向对象中也讲过了,就是类与类之间的关系度嘛,优先使用组合 、 聚合 、 关联,最后考虑继承( 不到万不得已坚决不用 )

javaSE高级篇7 — 设计原则和设计模式 — 设计模式慢慢更( 这是思想层次篇 )的更多相关文章

  1. AngularJS_01之基础概述、设计原则及MVC设计模式

    1.AngularJS: 开源的JS框架,用来开发单一页面应用,以及数据操作频繁的场景:2.设计原则: ①YAGNI原则:You Aren't Gonna Need It! 不要写不需要的代码! ②K ...

  2. java 28 - 1 设计模式 之 面向对象思想设计原则和模版设计模式概述

    在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设 ...

  3. 面向对象程序的设计原则--Head First 设计模式笔记

    一.找出应用中可能需要变化的地方,把它们独立出来,不要和那些不需要变化的代码混在一起. 把会变化的部分取出并“封装”起来,好让其他部分不会受到影响.这样,代码变化引起的不经意后果变少,系统变得更有弹性 ...

  4. 连载:面向对象的葵花宝典:思考、技巧与实践(39) - 设计原则 vs 设计模式

    它的设计原则,和设计模式,是否该用它? ============================================================================= 在& ...

  5. Java设计模式的7种设计原则还有很多人不知道

    前言 其实没有设计模式我们也能完成开发工作.但是为什么需要设计模式呢?让你看起来很牛,没错这个算一个.让你的代码层次感分明,可读性强而且容易维护.让你像我一样有更多的摸鱼划水时间. 可能有人说我一个类 ...

  6. GOF 的23种JAVA常用设计模式总结 03 面向对象七大设计原则

    在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率.节约软件开发成本和维护成本. 各位代码界的大佬们总结出的七 ...

  7. OO设计原则 -- OO设计的原则及设计过程的全面总结

    这部分增加一点自己的感想,OO设计原则下面讲述的很清晰;看完之后有点感想如果我们在实际开发当中能够把这些原则熟烂于心的话那我们的代码质量和个人能力会有很显著的提神.根据自己的实际经验看很多开发者在开发 ...

  8. 大型Java进阶专题(三) 软件架构设计原则(下)

    前言 ​ 今天开始我们专题的第二课了,本章节继续分享软件架构设计原则的下篇,将介绍:接口隔离原则.迪米特原则.里氏替换原则和合成复用原则.本章节参考资料书籍<Spring 5核心原理>中的 ...

  9. 这样学BAT必面之软件设计原则,还不会就是我的问题

    学习设计原则是学习设计模式的基础.在实际开发过程中,并不要求所有代码都遵循设计原则,我们要考虑人力.时间.成本.质量,不能刻意追求完美,但要在适当的场景遵循设计原则,这体现的是一种平衡取舍,可以帮助我 ...

随机推荐

  1. Linux零基础之shell基础编程入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  2. 排序算法:Java实现希尔排序

    希尔排序的思路是先分组再整合 先对下标进行分组,比如当数组长度为20时,一开始选定一个间隔值为10 对数组进行排序,每隔10个元素比较大小并交换,以下标为间隔,1和11比较.2和12比较......1 ...

  3. jdk8下载与安装教程

     jdk8下载与安装教程下载有两种方式 一.网盘下载网盘下载链接 pan.baidu.com/s/1VQAwHS6WDjemDnKDnPIvww 提取码:f5tv二.官网下载如果想自己一步步研究亲自实 ...

  4. error: unsupported reloc 43

    在Ubuntu 16.04.5 LTS编译android 5.1报错 [19:17:13.062]libnativehelper/JniInvocation.cpp:165: error: unsup ...

  5. maven项目打包执行

    1.maven项目已完成状态! 2.maven打包前提pom.xml引入插件依赖 <build> <plugins> <plugin> <artifactId ...

  6. robot_framewok自动化测试--(3)测试项目与测试套件的概念

    测试项目与测试套件的概念 如果你查看当前所创建的项目会发现,"test_project"是一个目录: "test_suit"则是一个 txt 文件: " ...

  7. 【解决方案】Pyinstaller打包exe策略(简单实用)

    场景说明 在业务场景中, 经常需要Python开发一些小程序/脚本/GUI界面,进行简单的项目测试或未安装Python 的小伙伴们使用. 使用Pyinstaller将Python脚本或者项目打包,生成 ...

  8. Unity——技能系统(三)

    Unity技能系统(三) Unity技能系统(一) Unity技能系统(二) Demo展示 六.Buff系统 buff分为增益和减益buff,应该区分开来: /// <summary> / ...

  9. Java中禁止浏览器开启缓存的方法命令

    响应头里添加禁止浏览器缓存的内容 Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0 其中,C ...

  10. Python介绍和安装

    python介绍和安装 目录 python介绍和安装 1. Python简介 2. 解释器 2.1 Python解释器的种类 2.2 Python解释器版本 3. Windows下安装Python 3 ...