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.软件开发概念--过滤和投影 数据操作 投影的本质及扩展 物体在太阳光的照射下形成的影子(简称日影)就是平行投影.日影的方向可以反映时间 投影还比喻此物通过彼物表现出来的迹象. 作者::老 ...
随机推荐
- linux安装配置redis
redis是支持linux的,所以linux安装redis非常简单,按照官网的提示操作即可. 下载 $ wget http://download.redis.io/releases/redis-3.2 ...
- django--02 模板的使用
参考链接:https://www.w3cschool.cn/django/django-template.html 1.新建模板目录 templates 2.在setting文件中注册模板 修改 T ...
- Android 卡顿优化 1 卡顿解析
1, 感知卡顿 用户对卡顿的感知, 主要来源于界面的刷新. 而界面的性能主要是依赖于设备的UI渲染性能. 如果我们的UI设计过于复杂, 或是实现不够好, 设备又不给力, 界面就会像卡住了一样, 给用户 ...
- C#接收xmlrpc接口返回哈希表格式
C#在调用xmlrpc接口时返回的是int值就可以直接获取,最近在调用一个接口是获取一个账号记录的详细信息,xmlrpc接口返回的是一个哈希值. 所以直接用int或者Hashtable 来获取返回值执 ...
- unity 显示mipmaplevel
https://docs.unity3d.com/ScriptReference/Texture2D.SetPixels.html 显示mipmaplevel 需要贴图可读写不压缩 using Uni ...
- ISP图像调试工程师——宽动态增强(熟悉图像预处理和后处理技术)
宽动态范围图像快速增强算法 : http://www.docin.com/p-1783311889.html
- 动态加入改动删除html表格内容
1.需求 须要实现收银台上加入改动删除商品信息时顾显能够实时看到其变化 2.解决 收银台和顾显通过tcp传输进行数据通信,顾显通过操作html中的表格进行数据加入改动和删除操作 3.代码 mytest ...
- threadlocal 变量 跟synchronized 关键字的关系
为什么叫threadloca变量呢,经过大量的查资料发现threadlocal并不是之前理解的控制线程用的东西,它其实也属于一类变量,只不过是线程的局部变量,它的作用就是实现线程间对该变量的唯一线程调 ...
- 转: APK签名校验绕过
转: http://drops.wooyun.org/mobile/4296 APK签名校验绕过 3xpl0it · 2014/12/11 10:41 0x01 Android签名机制 将APK重命名 ...
- EffectiveJava(27)优先考虑使用泛型方法
泛型方法也可以从泛型类中获得同等收益,泛型方法的转换也十分简单,只需将原生态类型改为泛型,基本就可以解决问题 如:一个返回两个集合的联合 public static Set union(Set s1, ...