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总结相关推荐

  1. 软件开发的“黑名单”规则设定:benchmark

    Notice of the "Blacklist" function of the Sports CentreDear all, In order to make rational ...

  2. 个别软件无法联网_个别编程语言对软件开发的贡献

    个别软件无法联网 我已经厌倦了博客文章和论坛咆哮,他们指出为什么一种编程语言比另一种更好. 我不介意将语言进行比较以帮助了解它们的不同之处,或者甚至是出于特定原因在特定情况下认为一种语言更好时,我也不 ...

  3. 【软件设计】细数软件开发的核心原则

    软件设计有两种方式:一种是设计得极为简洁,没有看得到的缺陷:另一种是设计得极为复杂,有缺陷也看不出来.第一种方式的难度要大得多. --<皇帝的旧衣>,CACM 1981 年 2 月 C.A ...

  4. 我对《敏捷软件开发宣言》的理解

    先po一下敏捷软件开发宣言以及其遵循的原则吧 2001年,17位编程大师共同发布<敏捷软件开发宣言>: "人"以及"人与人的互动" 胜于 " ...

  5. Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725

    Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓  O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...

  6. atitit.提升开发效率---mda 软件开发方式的革命

    atitit.提升开发效率---mda 软件开发方式的革命 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和其实现相分离 2 3. 目前的问题模型和代码不同步 2 4. MD ...

  7. Atitit。Cas机制 软件开发 编程语言 无锁机制 java c# php

    Atitit.Cas机制 软件开发 编程语言 无锁机制 java c# php 1. 为什么需要无锁操作1 2. 硬件支持 cas  atomic2 3. 无锁编程(Lock-Free)就是在某些应用 ...

  8. 计算机与软件开发法则

    注意:在语义上,计算机定律不是一成不变的法则,而是经验法则或假定法则.摩尔定律(经验法则:Moore's law) 摩尔定律是intel创始人Gordon Moore提出,讲的是当价格不变时,IC(集 ...

  9. 软件开发版本号常用的简洁命名规则和方案

    软件开发版本号常用的简洁命名规则和方案 一,    一般版本号命名的简洁规则:三段式命名规则 软件版本号命名一般采用三段式命名规则,三段式命名规则也是最常用的规则,大体上,如某个版本的a.b.c,具体 ...

  10. 汽车软件开发:目前还存在几大方面的痛点亟待解决?

    http://www.evinchina.com/newsshow-1370.html 通过对不同的汽车软件开发者的访谈,以及软件开发管理过程中的经验教训,@爱索咨询认为,除去组织架构的独立性之外,汽 ...

最新文章

  1. JVM调优总结(2):一些概念(下)
  2. Spring Boot 使用Actuator监控应用
  3. 批处理命令 / 延迟环境变量扩展
  4. 高性能网站架构设计之缓存篇(6)- Redis 集群(中)
  5. python两个集合相减_python集合的运算,两个集合相减是什么意思
  6. 《C++标准程序库》学习笔记(一)C++相关特性
  7. linux-redis
  8. JSK-25 两数之和【暴力】
  9. DBCP连接池配置优化分析
  10. VUE博客模板----FXBLOG
  11. Tek TDS3054B保存波形的方法
  12. 谈谈开展信息安全工作的四个权力
  13. JZM 的印象笔记 (卷积,分块)
  14. C++ 域名转IP地址
  15. 让SpringBoot不需要Controller、Service、DAO、Mapper,卧槽!这款工具
  16. 清华大学计算机系哪个专业就业前景最好,清华大学有哪些专业最好就业?很多人都不知道!...
  17. Educoder头歌-Linux vi/vim编辑器
  18. django-外键和表关系
  19. 加拿大安省哪个高中注重计算机,安省高中体制,你真的了解吗
  20. 抖音引流,抖音短视频引流教学

热门文章

  1. 关于linux下的共享库(动态库)和静态库
  2. 网站性能测试工具 webbench 的安装和使用-linux
  3. 美科学家研发能从干燥的沙漠空气中造水的新设备
  4. 关于Bom下标准模式和混杂模式!
  5. 【库】JavaScript——滚动条( 不是很完善 )
  6. 学习笔记day1-计算机介绍
  7. html5--3.19 新增的progress/meter元素
  8. Python numpy 中 keepdims 的含义
  9. 5、提交报告获取服务、状态报告获取服务 -功能详细设计 --短信平台
  10. HBase集成(准备篇)