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. VMware 8安装Mac OS X 10.7

    (Windows 7 X64环境下,VMware 8.0正式版)虚拟机首尝MAC OS X 10.7 Lion系统成功,特将此好消息分享.2年了,终于我也装上了Mac,我也成功的尝到了苹果味道,看着那 ...

  2. appium+python自动化45-夜神模拟器连不上(adb server version (36) doesn't match this client (39); killing...)

    前言 最新下了个最新版的夜神模拟器,然后adb devices发现连不上模拟器了,报adb server version (36) doesn't match this client (39); ki ...

  3. pgfplots画二维图真的很方便,多例比较

    %直接PDFLATEX编译即可\documentclass[border=1mm]{standalone}\usepackage{tkz-euclide,pgfplots}\begin{documen ...

  4. 一、Hello Spring Boot

    package com.ld.controller; import org.springframework.web.bind.annotation.RequestMapping; import org ...

  5. 判断客户端是PC还是手持设备的JS代码【转】

    1.第一种: 复制代码代码如下: function IsPC() {    var userAgentInfo = navigator.userAgent;    var Agents = [&quo ...

  6. Android 将ARGB图片转换为灰度图

    思路如下: 1.读取or照相,得到一张ARGB图片. 2.转化为bitmap类,并对其数据做如下操作: A通道保持不变,然后逐像素计算:X = 0.3×R+0.59×G+0.11×B,并使这个像素的值 ...

  7. python staticmethod,classmethod方法的使用和区别以及property装饰器的作用

    class Kls(object): def __init__(self, data): self.data = data def printd(self): print(self.data) @st ...

  8. 用好Git 和 SVN,轻松驾驭版本管理

    用好Git 和 SVN,轻松驾驭版本管理 本文从 Git 与 SVN 的对比入手,介绍如何通过 Git-SVN 开始使用 Git,并总结平时工作高频率使用到的 Git 常用命令. 一.Git vs S ...

  9. [ES6] 06. Arrow Function =>

    ES6 arrow function is somehow like CoffeeScirpt. CoffeeScript: //function call coffee = -> coffee ...

  10. 重载<<和>>

    在C++编程中实现数据的输入/输出能够用cin>>ch/cout<<ch; 可是使用cin>>ch或cout<<ch并不能实现一些特殊的数据的输入或者输 ...