Atitit.软件开发的几大规则,法则,与原则。。。attilax总结
Atitit.软件开发的几大规则,法则,与原则。。。
1. 设计模式六大原则 2
1.1. 设计模式六大原则(1):单一职责原则 2
1.2. 设计模式六大原则(2):里氏替换原则 2
1.3. 设计模式六大原则(3):依赖倒置原则 2
1.4. 设计模式六大原则(4):接口隔离原则 2
1.5. 设计模式六大原则(5):迪米特法则 2
1.6. 设计模式六大原则(6):开闭原则 2
2. 面向对象的S.O.L.I.D原则 2
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. Other原则 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
4. 参考 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总结相关推荐
- 软件开发的“黑名单”规则设定:benchmark
Notice of the "Blacklist" function of the Sports CentreDear all, In order to make rational ...
- 个别软件无法联网_个别编程语言对软件开发的贡献
个别软件无法联网 我已经厌倦了博客文章和论坛咆哮,他们指出为什么一种编程语言比另一种更好. 我不介意将语言进行比较以帮助了解它们的不同之处,或者甚至是出于特定原因在特定情况下认为一种语言更好时,我也不 ...
- 【软件设计】细数软件开发的核心原则
软件设计有两种方式:一种是设计得极为简洁,没有看得到的缺陷:另一种是设计得极为复杂,有缺陷也看不出来.第一种方式的难度要大得多. --<皇帝的旧衣>,CACM 1981 年 2 月 C.A ...
- 我对《敏捷软件开发宣言》的理解
先po一下敏捷软件开发宣言以及其遵循的原则吧 2001年,17位编程大师共同发布<敏捷软件开发宣言>: "人"以及"人与人的互动" 胜于 " ...
- Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725
Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...
- atitit.提升开发效率---mda 软件开发方式的革命
atitit.提升开发效率---mda 软件开发方式的革命 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和其实现相分离 2 3. 目前的问题模型和代码不同步 2 4. MD ...
- Atitit。Cas机制 软件开发 编程语言 无锁机制 java c# php
Atitit.Cas机制 软件开发 编程语言 无锁机制 java c# php 1. 为什么需要无锁操作1 2. 硬件支持 cas atomic2 3. 无锁编程(Lock-Free)就是在某些应用 ...
- 计算机与软件开发法则
注意:在语义上,计算机定律不是一成不变的法则,而是经验法则或假定法则.摩尔定律(经验法则:Moore's law) 摩尔定律是intel创始人Gordon Moore提出,讲的是当价格不变时,IC(集 ...
- 软件开发版本号常用的简洁命名规则和方案
软件开发版本号常用的简洁命名规则和方案 一, 一般版本号命名的简洁规则:三段式命名规则 软件版本号命名一般采用三段式命名规则,三段式命名规则也是最常用的规则,大体上,如某个版本的a.b.c,具体 ...
- 汽车软件开发:目前还存在几大方面的痛点亟待解决?
http://www.evinchina.com/newsshow-1370.html 通过对不同的汽车软件开发者的访谈,以及软件开发管理过程中的经验教训,@爱索咨询认为,除去组织架构的独立性之外,汽 ...
最新文章
- JVM调优总结(2):一些概念(下)
- Spring Boot 使用Actuator监控应用
- 批处理命令 / 延迟环境变量扩展
- 高性能网站架构设计之缓存篇(6)- Redis 集群(中)
- python两个集合相减_python集合的运算,两个集合相减是什么意思
- 《C++标准程序库》学习笔记(一)C++相关特性
- linux-redis
- JSK-25 两数之和【暴力】
- DBCP连接池配置优化分析
- VUE博客模板----FXBLOG
- Tek TDS3054B保存波形的方法
- 谈谈开展信息安全工作的四个权力
- JZM 的印象笔记 (卷积,分块)
- C++ 域名转IP地址
- 让SpringBoot不需要Controller、Service、DAO、Mapper,卧槽!这款工具
- 清华大学计算机系哪个专业就业前景最好,清华大学有哪些专业最好就业?很多人都不知道!...
- Educoder头歌-Linux vi/vim编辑器
- django-外键和表关系
- 加拿大安省哪个高中注重计算机,安省高中体制,你真的了解吗
- 抖音引流,抖音短视频引流教学