- 浏览: 565576 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
面向对象设计原则--《敏捷软件开发》
摘抄自《敏捷软件开发-原则、方法与实践》-Robert C. Martin
(1)SRP 单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。
职责即为"变化的原因".
(2)OCP 开放封闭原则
软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。
对于扩展是开放的,对于更改是封闭的.
关键是抽象.将一个功能的通用部分和实现细节部分清晰的分离开来.
开发人员应该仅仅对程序中呈现出频繁变化的那些部分作出抽象.拒绝不成熟的抽象和抽象本身一样重要.
(3)LSP Liskov替换原则
子类型必须能替换掉他们的基本类型
(4)DIP 依赖倒置原则
抽象不应该依赖于细节。细节应该依赖于抽象。
Hollywood原则: "Don't call us, we'll call you".程序中所有的依赖关系都应该终止于抽象类和接口。针对接口而非实现编程。
任何变量都不应该持有一个指向具体类的指针或引用。
任何类都不应该从具体类派生。
任何方法都不应该覆写他的任何基类中的已经实现了的方法。
(5)ISP 接口隔离原则
不应该强迫客户依赖于他们不用的方法。接口属于客户,不属于他所在的类层次结构。
多个面向特定用户的接口胜于一个通用接口。
(6)REP 重用发布等价原则
重用的粒度就是发布的粒度.
(7)CCP 共同重用原则
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
相互之间没有紧密联系的类不应该在同一个包中。
(8)CRP 共同封闭原则
包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不造成任何影响.
(9)ADP 无依赖原则
在包的依赖关系中不允许存在环.
细节不应该被依赖.
(10)SDP 稳定依赖原则
朝着稳定的方向进行依赖.
应该把封装系统高层设计的软件(比如抽象类)放进稳定的包中,不稳定的包中应该只包含那些很可能会改变的软件(比如具体类)。
(11)SAP 稳定抽象原则
包的抽象程度应该和其他稳定程度一致.
一个稳定的包应该也是抽象的,一个不稳定的包应该是抽象的.
(12)DAP(Default Abstraction Principle)缺省抽象原则
在接口和实现接口的类之间引入一个抽象类,这个类实现了接口的大部分操作.
(13)IDP(Interface Design Principle)接口设计原则
规划一个接口而不是实现一个接口。
(14)BBP(Black Box Principle)黑盒原则
多用类的聚合,少用类的继承。
(15)DCSP(Don't Concrete Supperclass Principle)不要构造具体的超类原则
避免维护具体的超类。
发表评论
-
java的InputStream和OutputStream的理解【转】
2015-11-09 18:10 654原文地址:http://www.cnblogs.com/spr ... -
【JSP】让HTML和JSP页面不缓存的方法
2015-10-14 10:16 487原文地址:http://blog.csdn.net/juebl ... -
jsp去掉浏览器缓存
2015-10-14 09:21 630原文地址:http://bbs.csdn.net/topics ... -
Spring定时任务的几种实现
2015-09-17 18:02 392原文地址:http://gong1208.iteye.com/ ... -
Java 8 简明教程
2015-08-31 17:43 357原文地址:http://www.iteye.com/magaz ... -
Java 8 简明教程
2015-08-28 15:30 564原文地址:http://www.iteye.com/magaz ... -
Spring 3.0 注解注入详解
2015-08-20 12:01 519原文地址:http://developer.51cto.com ... -
Apache所有项目介绍
2015-08-20 11:47 960原文地址:http://haisha.iteye.com/bl ... -
jdk5.0新特性介绍
2015-08-04 18:08 469原文地址:http://blog.sina.com.cn/s/ ... -
Apache Log4j配置说明
2015-05-18 15:59 428原文地址:http://zhangjunh ... -
ubuntu 14.04 下通过apt-get 安装jdk
2015-04-09 16:42 712原文地址:http://segmentfault.com/a/ ... -
【原创】Eclipse Class Decompiler——Java反编译插件
2015-04-01 15:00 613原文地址:http://www.blogj ... -
jvisualvm远程监控Tomcat
2015-03-06 10:19 721原文地址:http://ihuangweiwei.iteye. ... -
Java 并发核心编程
2015-01-08 18:07 622原文地址:http://www.cnblogs.com/see ... -
log4j日志文件乱码问题的解决方法
2015-01-06 18:11 829原文地址:http://blog.csdn.net/inkfi ... -
SHA1与MD5
2014-12-22 15:31 619原文地址:http://blog.csdn.net/fogle ... -
征服 Redis + Jedis
2014-12-19 13:51 399原文地址:http://snowolf.iteye.com/b ... -
Java连接redis的使用示例
2014-12-19 12:08 1079原文地址:http://blog.csdn.net/wgw33 ... -
java对redis的基本操作
2014-12-19 12:07 587原文地址:http://www.cnblogs.com/edi ... -
Eclipse Class Decompiler——Java反编译插件
2014-10-16 11:02 472原文地址:http://bbs.csdn. ...
相关推荐
面向对象程序设计试题知识点总结 在面向对象程序设计中,指针是地址变量,不能用除 0 以外的常量赋值,两个指针变量的加减法无意义,指针指向不同基类型的变量长度不同。 析构函数是类的特殊成员函数,它不能有...
本自学辅导资料旨在帮助学习者深入理解和掌握面向对象编程的核心概念和技术。 在面向对象编程(OOP)中,对象是程序的基本单元,它包含了数据(属性或状态)和对数据进行操作的函数(方法)。对象的创建是通过定义...
Java面向对象程序设计是Java语言的核心特性之一,也是学习Java编程不可或缺的部分。本教程全面深入地探讨了这一主题,旨在帮助初学者和有一定基础的开发者更深入地理解面向对象编程的概念和实践。以下是对该教程内容...
面向对象程序设计JAVA 多线程自学教程ppt
面向对象系统分析与设计是软件开发过程中的关键环节,它涉及到如何将现实世界的问题转化为可执行的计算机程序。本题库主要关注的是用例模型的建立与分析,这是面向对象设计的重要组成部分,用于描绘系统与外部实体...
自学C++面向对象程序设计时,建议先从基础语法开始,逐步深入到高级主题。查阅权威的教材,如《C++ Primer》或《Effective C++》,并结合实际项目进行练习,可以显著提高学习效率。同时,参加在线编程社区和论坛,如...
资源描述:Java面向对象知识点的思维导图 内容概要: 这个资源是一个Java面向对象知识点的思维导图,它涵盖了Java中面向对象编程的核心概念和重要知识点。导图中包含了类、对象、继承、多态、封装等基本概念,同时...
以下是来自全国 2005 年 10 月高等教育自学考试面向对象程序设计试题的知识点总结: 1. 多态性是指不同的对象调用相同名称的函数(选择题 1)。 多态性是面向对象编程的核心概念之一,它允许不同的对象调用相同...
《历年全国高等教育自学考试——C++面向对象程序设计试题集及答案》是针对C++编程语言,特别是面向对象编程(OOP)领域的学习者而设计的一份宝贵的复习资源。这份资料集涵盖了历年的高等教育自学考试题目,对于考生...
JAVA基础,自学JAVA面向对象送达特性总结
### C# 3.0 面向对象程序设计概览 #### 一、面向对象程序设计概述 在探讨C# 3.0面向对象程序设计之前,有必要回顾一下传统程序设计方法——面向过程编程的一些局限性。面向过程的编程语言主要依赖于“变量”和...
本书以面向对象的软件工程思想为主线,细致深入地讲解了C#语言面向对象程序设计的方法和技巧,内容涵盖面向对象的基本概念、基于接口的设计、泛型程序设计方法、Windows和WPF窗体界面、文件和数据库访问,以及ASP...
本教程“面向对象C++入门自学教程”旨在帮助非C程序员快速掌握C++的基础知识,并深入理解面向对象编程的核心理念。 **章节一:C++基础** 在这一章节中,你将学习到C++的基本语法和数据类型,包括整型、浮点型、...
本书适合作为大专院校计算机软件专业研究生和高年级本科生学习UML和面向对象技术的教材,也可作为软件开发人员自学的参考书。通过学习本书,读者可以掌握面向对象技术的基本概念,熟悉面向对象的分析和设计方法,...
UML是OMG于1997年11月批准的标准建模语言,是20多年来面向对象技术发展史上的重大里程碑。...本书可作为各类专业本科高年级学生和硕士研究生学习面向对象技术的教材,也可作为工程技术人员自学面向对象技术的参考书
面向对象的分析、设计和实现是软件开发中一个重要的领域,它主要关注如何使用面向对象的概念和原则来分析问题域、设计软件系统以及实现这些系统。第二版的《面向对象的分析、设计和实现》是一本专注于这一主题的书籍...