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. Atitit.软件开发的几大规则,法则,与原则Principle v3

    Atitit.软件开发的几大规则,法则,与原则Principle  v31.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里 ...

  2. Atitit.软件开发的几大规则,法则,与原则p821.doc

    Atitit.软件开发的几大规则,法则,与原则p821.doc 1. 设计模式六大原则2 1.1. 设计模式六大原则(1):单一职责原则2 1.2. 设计模式六大原则(2):里氏替换原则2 1.3.  ...

  3. Atitit.软件开发的三层结构isv金字塔模型

    Atitit.软件开发的三层结构isv金字塔模型 第一层,Implements 层,着重与功能的实现.. 第二次,spec层,理论层,设计规范,接口,等.流程.方法论 顶层,val层,价值观层,原则, ...

  4. Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义

    Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义 首先我们指明,任何一种行动以及教派修行方法都有他的多元化,只看到某一方面,就不能很好的评估利弊,适不适合自己使 ...

  5. Atitit.软件开发提升稳定性总结

    Atitit.软件开发提升稳定性总结 #----影响稳定性几个类别 3 1. 资源和内存泄漏溢出 3 2. 数据库/文件死锁 3 3. 类库冲突 3 4. 热更新热部署(业务可用性 3 5. 程序崩溃 ...

  6. 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. ...

  7. Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode

    Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode 不个网页title保存成个个文件的时候儿有无效字符的问题... 通常两个处理方式 ...

  8. Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php

    Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php 1. RFC2396标准 including HTML 4.01 section  ...

  9. atitit.软件开发概念--过滤和投影 数据操作

    atitit.软件开发概念--过滤和投影 数据操作 投影的本质及扩展 物体在太阳光的照射下形成的影子(简称日影)就是平行投影.日影的方向可以反映时间 投影还比喻此物通过彼物表现出来的迹象. 作者::老 ...

随机推荐

  1. [HTML/CSS]div显示在object、embed之上~

    引言 帮一个朋友弄前端布局,一切都正常,但是嵌入object之后,div总是在object的下面,就上网找了一下解决方案,这里记录一下,好像只对flash有效. 用embed插入一个flash(比如优 ...

  2. ecplise配置maven项目

    1.新增环境变量 M2_HOME C:\Users\Administrator\Desktop\Java\maven\apache-maven-3.3.1   2.配置PATH路径 ;%M2_HOME ...

  3. C/C++ 语言中的表达式求值

    在此,首先向裘老师致敬! 裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?” m = 1; n = m+++m++; 最近有位不相识的朋友 ...

  4. SecureCRT配置文件保存和导入

    每次重装系统,都要重新配置SecureCRT,为了减少重复工作.直接在SecureCRT软件中找到:选项---全局选项---常规---配置文件夹下面路径:C:\Users\Administrator\ ...

  5. TensorFlow------读取二进制文件实例

    TensorFlow------读取二进制文件实例: class CifarRead(object): ''' 完成读取二进制文件,写进tfrecords,读取tfrecords :param obj ...

  6. myEclipse的配置

  7. PLSQL Developer连接远程Oracle方法(非安装client)

    远程连接Oracle比較麻烦,通常须要安装oracle的客户端才干实现. 通过instantclient能够比較简单的连接远程的Oracle. 1.新建文件夹D:\Oracle_Cleint用于存放相 ...

  8. BST数据结构题

    给定BST.改动BST,使得每一个点都是大于他的结点的值之和 关键是这题递归參数怎么设计,每一个点比他大的有两快.一个是右子书(假设有的话),还有一个是祖先里面比他大的,假设直接用这两个的话,找不到递 ...

  9. WebDriver API——第3部分Action Chains

    The ActionChains implementation, class selenium.webdriver.common.action_chains.ActionChains(driver) ...

  10. Debian 的 apt 命令不能使用自动完成的问题

    我的Debian是8.10,使用apt-get命令可以正常使用自动完成功能,但apt命令却不行,在国外的一个网站上找到了解决办法: 从这个地址 http://pastebin.com/PRBMt3an ...