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.软件开发概念--过滤和投影 数据操作 投影的本质及扩展 物体在太阳光的照射下形成的影子(简称日影)就是平行投影.日影的方向可以反映时间 投影还比喻此物通过彼物表现出来的迹象. 作者::老 ...
随机推荐
- ExtJS初学笔记---Ext.Msg.alert无效果
最近开始学ExtJS,书上的第一个例子是: 1 2 3 Ext.onReady(function(){ Ext.Msg.alert('Hello.', 'Hello'); }); 这个是Ext ...
- unity pbr
https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf 参数
- 机器学习:K-近邻算法(KNN)
机器学习:K-近邻算法(KNN) 一.KNN算法概述 KNN作为一种有监督分类算法,是最简单的机器学习算法之一,顾名思义,其算法主体思想就是根据距离相近的邻居类别,来判定自己的所属类别.算法的前提是需 ...
- Java笔记15:多线程
Java实现多线程有两种方式:一是继承Thread类:二是实现Runable接口. 一.Thread实现 publicclass ThreadDemo2 { publicstaticvoid main ...
- Android之旅七 Service简介
1. Service是什么:它是一个应用程序组件.没有图形化界面.通常用来处理一些耗时比较长的操作(例如下载.播放MP3等等).可以使用Service更新ContentProvide ...
- Nginx负载均衡+监控状态检测
Nginx负载均衡+监控状态检测 想用Nginx或者Tengine替代LVS,即能做七层的负载均衡,又能做监控状态检测,一旦发现后面的realserver挂了就自动剔除,恢复后自动加入服务池里,可以用 ...
- Junit测试Spring应用Dubbo测试框架之-Excel 工具类
package com.tree.autotest.demo; import com.alibaba.fastjson.JSON;import org.apache.poi.hssf.usermode ...
- 【转】Android一些知识点汇总
Android常用知识点总汇 一.系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由. 如果在你的android系统上安装了多种浏览器,能否指定某浏览器访问指定页面?答案当然是:肯定的. ...
- ios开发杂项(基础性介绍等)
IOS Xcode开发中的文件后缀名区别m,mm,cpp,h .h :头文件.头文件包含类,类型,函数和常数的声明. .m :源代码文件.这是典型的源代码文件扩展名,可以包含Objective-C和C ...
- 【MVC5】使用权限+角色
1.在Ticket中设置用户角色 在权限的Ticket中设置用户的角色(这里是逗号分割). List<string> roles = new List<string>(); i ...