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

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 implementation4

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

3.14. 伯斯塔尔法则  后向兼容性设计5

3.15. 软件,就像所有技术一样,具有天然的政治性。代码必然会反映作者的选择、偏见和期望。5

3.16. 首先为人类设计,其次为机器设计。5

4. 参考6

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://www.cnblogs.com/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)–无环依赖原则

3.14. 伯斯塔尔法则  后向兼容性设计

3.15. 软件,就像所有技术一样,具有天然的政治性。代码必然会反映作者的选择、偏见和期望。

3.16. 首先为人类设计,其次为机器设计。

容易让用户理解更重要。相比 让机器理解(解析)

4. 参考

软件设计的七大原则 - On the way - 博客园.html

一些软件设计原则 - 博客 - 伯乐在线.html

一些软件设计原则 - 博客 - 伯乐在线.html

Atitit.软件开发的几大规则,法则,与原则p821.doc的更多相关文章

  1. Atitit.软件开发的几大规则,法则,与原则Principle v3

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

  2. Atitit.软件开发的几大规则,法则,与原则。。。attilax总结

    Atitit.软件开发的几大规则,法则,与原则... 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. Android Json的使用(2) 使用Jackson解析和生成json

    使用Jackson的三种方式 数据绑定模式:使用最方便 流模式:性能最佳 树模式:最灵活 以最常用的数据绑定模式为例 Json数据如下 { "name" : { "fir ...

  2. 获取dataset结果集的第一行第一列字段

    DataSet fileNameDs = DbHelper.excuteSqlResultDataSet(strSql); ) { DataTable fileNameDt = fileNameDs. ...

  3. Laravel简⃣单⃣的⃣路⃣由⃣

    在⃣routes.php文⃣件⃣中⃣写⃣如⃣下⃣几⃣个⃣函⃣数⃣: Route::get('/', function () { return view('welcome'); }); // 获⃣取⃣a ...

  4. jenkins的slave报错误: org.owasp.dependencycheck.data.nvdcve.DatabaseException: Exception retrieving vulnerability for cpe:/a:mysql:mysql:5.1.26

    目前的临时解决办法是通过任务分配到master节点跑

  5. (转)RedHat/CentOS安装和配置kerberos

    RedHat/CentOS安装和配置kerberos 需要在kerberos server和客户端都先安装ntp (Internet时间协议,保证服务器和客户机时间同步 ) 1  kerberos 服 ...

  6. struts2安全漏洞

    1 背景 Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴.京东等互联网.政府.企业门户网站. 2 内容 在2013年6月底发布的Struts 2.3.15版本被曝出存在重要的 ...

  7. vector relation

    ::std::vector<> 的存储管理 以下成员函数用于存储管理: void reserve( size_t n ); size_t capacity() const; void re ...

  8. 【云计算】CloudFoundry参考资料

    开源PaaS平台 Cloud Foundry:http://www.oschina.net/p/cloud+foundry/ 详解CloudFoundry中各个组件的作用:http://www.cst ...

  9. (转)NIO 分散和聚集

    分散和聚集 概述 分散/聚集 I/O 是使用多个而不是单个缓冲区来保存数据的读写方法. 一个分散的读取就像一个常规通道读取,只不过它是将数据读到一个缓冲区数组中而不是读到单个缓冲区中.同样地,一个聚集 ...

  10. java线程总结(1/5)

    前言 闲来无事正值面试,看面试中有线程之问题,特此总结一番. 正文 一.线程和进程的区别:1.每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销.2.线程可以看成时轻量级的进程 ...