文档章节

面向对象编程六大设计原则

偶尔诗文
 偶尔诗文
发布于 2017/03/26 23:00
字数 520
阅读 58
收藏 1

如果想写好java代码,那么下面的六大设计原则是必不可少的。

所谓的六大设计原则分别是

单一职责原则

不论是类,接口,方法,都只做一件事情

里氏替换原则

父类在的地方,他的子类在同样的地方一样可以,并且结果不变,最好的实现就是子类必须重载父类的所有方法,或者直接用父类的方法,在这个的前提下,才可以有自己的私有方法,注意是重载,不是重写。

依赖倒置原则

(1)上层模块不能依赖下层模块

(2)抽象不能依赖具体实现

(3)具体实现应该依赖抽象

接口隔离原则

客户端不依赖他不需要的接口,换句话说就是接口要足够细化,他与单一职责原则的主要区别就是,单一职责原则关注的是接口的职责,而接口的隔离原则关注的是接口方法的数量,也就是说,按照单一职责原则一个接口可以有是个方法,但是接口隔离原则可能希望把这个接口再拆分的细一些,但是一般都是在满足单一职业的前提下,才会考虑接口隔离原则

迪米特法则

也叫做最少知识原则,他的解释就是,一个对象对他依赖的对象了解的越少越好,并且只跟他最亲近的朋友打交道,具体的实现就是一个类尽量不要有太多的public 方法公布出去。

开闭原则:      

这条太出名了,就是对修改关闭,对扩展开放。

        可以说前五个原则都是对第六个原则的具体实现,而这些原则也有一个共同的目标,就是使你的软件架构更加的低耦合,高内聚!

 

© 著作权归作者所有

下一篇: 命令模式
偶尔诗文
粉丝 12
博文 147
码字总数 64743
作品 0
沈阳
高级程序员
私信 提问
一个程序员的读书笔记:程序设计的反思

刚开始编程的时候是在高中,那个时候计算机课上老师教的是pascal。一种典型的面相过程的语言。那个时候懵懵懂懂的认为:程序还是一个蛮神奇的东西,敲几个英文字符进去,就能够有反馈。即使这...

绝影jy
2014/05/03
0
4
一个程序员的读书笔记--关于程序设计的反思

一个程序员的读书笔记--关于程序设计的反思 刚开始编程的时候是在高中,那个时候计算机课上老师教的是pascal。一种典型的面相过程的语言。那个时候懵懵懂懂的认为:程序还是一个蛮神奇的东西...

赵小宾
2014/04/23
0
0
设计模式之基础知识

设计模式简介 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式...

白志华
2015/10/20
64
0
设计模式之六大原则与抽象

抽象 抽象是为了某种目的,对一个概念或一种现象包含的信息进行过滤,移除不相关的信息,只保留最终与目的相关的信息。比如:"一个纸杯",我们可以过滤掉质料相关的信息,得到一个更一般且通...

lazy_boy_coder
2018/01/10
0
0
34岁!100天!学会Java编程(Day49-Day52)—OOP设计模式

新书发布会 下午的昊海楼9层阁楼,阳光从分别从西侧落入,从东侧大厦的玻璃幕墙反射回来,将阁楼填满了阳光。在这样的阳光下目睹一本新书的发布,有一种迷幻的味道。 (一)为什么要学设计模...

魏小筠
2017/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nproc systemd on CentOS 7

Increasing nproc for processes launched by systemd on CentOS 7 Ask Question I have successfully increased the nofile and nproc value for the local users, but I couldn't find a p......

MtrS
今天
3
0
了解微信小程序下拉刷新功能

小程序提供了这个事件。 onPullDownRefresh() 监听用户下拉刷新事件。 如果要开启下拉刷新功能,要先到json配置: "enablePullDownRefresh":true 配置后下拉有反应了但是没有加载效果,在onP...

oixxan__
今天
2
0
springmvc java对象转json,上传下载(未完)拦截器Interceptor以及源码解析(未完待续)

package com.atguigu.my.controller;import java.util.Collection;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Contr......

architect刘源源
今天
32
0
[日更-2019.5.24、25、26] Android系统中的Binder通信机制分析(一)--servicemanager

声明 其实对于Android系统Binder通信的机制早就有分析的想法,记得去年6、7月份Mr.Deng离职期间约定一起对其进行研究的,但因为我个人问题没能实施这个计划,留下些许遗憾... 最近,刚好在做...

Captain_小馬佩德罗
昨天
24
0
聊聊dubbo的DataStore

序 本文主要研究一下dubbo的DataStore DataStore dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java @SPI("simple")public interface DataStore { ......

go4it
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部