Atitit.软件开发的几大规则,法则,与原则。。。attilax总结
Atitit.软件开发的几大规则,法则,与原则。。。
2.1. Single Responsibility Principle (SRP)–职责单一原则 3
2.2. Open/Closed Principle (OCP)–开闭原则 3
2.3. Liskov substitution principle (LSP)–里氏代换原则 3
2.4. Interface Segregation Principle (ISP)–接口隔离原则 3
2.5. Dependency Inversion Principle(DIP)–依赖倒置原则 3
3.1. Don’t Repeat Yourself(DRY) 4
3.2. Keep It Simple, Stupid (KISS) 4
3.3. Program to an interface, not an implementation 4
3.4. Command-Query Separation (CQS)–命令-查询分离原则 4
3.5. You Ain’t Gonna Need It(YAGNI) 4
3.6. Common Closure Principle(CCP)–共同封闭原则 4
3.7. Common Reuse Principle (CRP)–共同重用原则 4
3.8. Hollywood Principle–好莱坞原则 4
3.9. High Cohesion & Low/Loose coupling & –高内聚,低耦合 5
3.10. Convention over Configuration(CoC)–惯例优于配置原则 5
3.11. Separation of Concerns (SoC)–关注点分离 5
3.12. Design by Contract (DbC)–契约式设计 5
3.13. Acyclic Dependencies Principle (ADP)–无环依赖原则 5
1. 设计模式六大原则
1.1. 设计模式六大原则(1):单一职责原则
1.2. 设计模式六大原则(2):里氏替换原则
1.3. 设计模式六大原则(3):依赖倒置原则
1.4. 设计模式六大原则(4):接口隔离原则
1.5. 设计模式六大原则(5):迪米特法则
最少知识原则”(Principle of Least Knowledge)
1.6. 设计模式六大原则(6):开闭原则
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2. 面向对象的S.O.L.I.D原则
一般来说这是面向对象的五大设计原则,但是,我觉得这些原则可适用于所有的软件开发。
2.1. Single Responsibility Principle (SRP)–职责单一原则
2.2. Open/Closed Principle (OCP)–开闭原则
2.3. Liskov substitution principle (LSP)–里氏代换原则
2.4. Interface Segregation Principle (ISP)–接口隔离原则
2.5. Dependency Inversion Principle(DIP)–依赖倒置原则
3. Other原则
5.合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)
在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过这些向对象的委派达到复用已有功能的目的.这个设计原则有另一个简短的表述:要尽量使用合成/聚合,尽量不要使用继承.
3.1. Don’t Repeat Yourself(DRY)
3.2. Keep It Simple, Stupid (KISS)
3.3. Program to an interface, not an implementation
3.4. Command-Query Separation (CQS)–命令-查询分离原则
查询:当一个方法返回一个值来回应一个问题的时候,它就具有查询的性质;
命令:当一个方法要改变对象的状态的时候,它就具有命令的性质;
3.5. You Ain’t Gonna Need It(YAGNI)
这个原则简而言之为——只考虑和设计必须的功能,避免过度设计。只实现目前需要的功能,在以后您需要更多功能时,可以再进行添加。
3.6. Common Closure Principle(CCP)–共同封闭原则
3.7. Common Reuse Principle (CRP)–共同重用原则
3.8. Hollywood Principle–好莱坞原则
好莱坞原则就是一句话——“don’t call us,we’ll call you.”。意思是,好莱坞的经纪人们不希望你去联系他们,而是他们会在需要的时候来联系你。也就是说,所有的组件都是被动的,所有的组件初始化和调用都 由容器负责。组件处在一个容器当中,由容器负责管理。
单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:
· 1.不创建对象,而是描述创建对象的方式。
· 2.在代码中,对象与服务没有直接联系,而是容器负责将这些联系在一起。
3.9. High Cohesion & Low/Loose coupling & –高内聚,低耦合
3.10. Convention over Configuration(CoC)–惯例优于配置原则
3.11. Separation of Concerns (SoC)–关注点分离
3.12. Design by Contract (DbC)–契约式设计
3.13. Acyclic Dependencies Principle (ADP)–无环依赖原则
4. 参考
软件设计的七大原则 - On the way - 博客园.html
一些软件设计原则 - 博客 - 伯乐在线.html
一些软件设计原则 - 博客 - 伯乐在线.html
Atitit.软件开发的几大规则,法则,与原则。。。attilax总结的更多相关文章
- Atitit.软件开发的几大规则,法则,与原则Principle v3
Atitit.软件开发的几大规则,法则,与原则Principle v31.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里 ...
- Atitit.软件开发的几大规则,法则,与原则p821.doc
Atitit.软件开发的几大规则,法则,与原则p821.doc 1. 设计模式六大原则2 1.1. 设计模式六大原则(1):单一职责原则2 1.2. 设计模式六大原则(2):里氏替换原则2 1.3. ...
- Atitit.软件开发的三层结构isv金字塔模型
Atitit.软件开发的三层结构isv金字塔模型 第一层,Implements 层,着重与功能的实现.. 第二次,spec层,理论层,设计规范,接口,等.流程.方法论 顶层,val层,价值观层,原则, ...
- Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义
Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义 首先我们指明,任何一种行动以及教派修行方法都有他的多元化,只看到某一方面,就不能很好的评估利弊,适不适合自己使 ...
- Atitit.软件开发提升稳定性总结
Atitit.软件开发提升稳定性总结 #----影响稳定性几个类别 3 1. 资源和内存泄漏溢出 3 2. 数据库/文件死锁 3 3. 类库冲突 3 4. 热更新热部署(业务可用性 3 5. 程序崩溃 ...
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform 1. Absoluti 布局(经常使用) 1 2. ...
- Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode
Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode 不个网页title保存成个个文件的时候儿有无效字符的问题... 通常两个处理方式 ...
- Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php
Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php 1. RFC2396标准 including HTML 4.01 section ...
- atitit.软件开发概念--过滤和投影 数据操作
atitit.软件开发概念--过滤和投影 数据操作 投影的本质及扩展 物体在太阳光的照射下形成的影子(简称日影)就是平行投影.日影的方向可以反映时间 投影还比喻此物通过彼物表现出来的迹象. 作者::老 ...
随机推荐
- java自带的jvm分析工具
http://domark.iteye.com/blog/1924302 这段时间觉得很有必要对java的内存分析工具进行熟悉,这样以后出现机器负载较高,或者反应很慢的时候,我就可以查找原因了.上 ...
- docker是PaaS,与openstack是IaaS的关系
个人理解Docker的每一个虚机其实是宿主操作系统中的一个进程.主要是一种虚拟化技术.OpenStack主要解决的是基础架构云的云服务问题.OpenStack是在虚拟化技术之上的一层,主要解决系统部署 ...
- VLAN讲解
VLAN(Virtual Local Area Network)的中文名为"虚拟局域网".VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术. ...
- C++ 初始化列表(转载)
何谓初始化列表 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段.在 C++中,struct和class的唯一区别是 ...
- SQL通过身份证获取信息
SELECT t.identity_number '身份证号',SUBSTR(t.identity_number,1,2) AS "省份",SUBSTR(t.identity_nu ...
- shell遍历文件夹并执行命令
背景: 有一个源码包里面包含很多子目录和makefile,打包后的压缩包太大,需要将make生成的所有二进制文件删除然后再打包. 需求: 因此,要求在制定目录的所有递归子目录中执行make clean ...
- 云计算之路-试用Azure:拐弯抹角的负载均衡
负载均衡是云服务商标配的免费服务.阿里云的对应产品叫SLB,UCloud的对应产品叫ULB,操作都很简单直观,进入负载均衡管理控制台,添加负载均衡,选择相应的虚拟机即可. 而Azure则完全不一样,在 ...
- silverlight客户端保存文件乱码问题
最近做一个项目,有一个需求是这样的:服务端从数据库里获得数据,客户端保存为Excel文件 最初解决方案:服务端获得数据,通过ExcelPackage,Convert.ToBase64String将by ...
- Building An Effective Marketing Plan
“New ideas are a dime a dozen,” observes Arthur R. Kydd, “and so are new products and new technologi ...
- ubuntu 改动 ls 下的文件夹颜色
ubuntu 下, ls 显示的文件夹的颜色,怎么说呢,看起来太费劲了. 于是想着改动成easy识别的颜色. 于是搜索了一下. 这里列举三个搜到的教程吧. 简单说我按这上面的方法做了,然后都失败了. ...