E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
软件设计原则
软件设计原则
----依赖倒置原则(DIP)
"要依赖于抽象,不要依赖于具体。”“要针对接口编程,不要针对实现编程。”陈述:高层模块不应该依赖于低层模块。二者应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。分析:所谓“倒置”是相对于传统的开发方法(例如结构化方法)中总是倾向于让高层模块依赖于低层模块而言的软件结构而言的。高层包含应用程序的策略和业务模型,而低层包含更多的实现细节,平台相关细节等。高层依赖低层将导致:难以复用。通常改变
BeyondHaven
·
2011-10-25 15:00
设计模式
编程
command
button
出版
平台
软件设计原则
----LisKov替换原则(LSP)
“一个软件实体如果使用的是一个基类的话,一定适用于其子类,而且根本不能觉察出基类对象和子类对象的区别。”陈述:子类型(Subtype)必须能够替换他们的基类型(Basetype)BarbaraLiskov对原则的陈述:若对每个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P的行为功能不变,则S是T的子类型。通俗地讲,就是子类型能够完全替换父类型
beyondhaven
·
2011-10-21 10:56
软件架构
软件设计原则
----LisKov替换原则(LSP)
“一个软件实体如果使用的是一个基类的话,一定适用于其子类,而且根本不能觉察出基类对象和子类对象的区别。”陈述:子类型(Subtype)必须能够替换他们的基类型(Basetype)BarbaraLiskov对原则的陈述:若对每个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P的行为功能不变,则S是T的子类型。通俗地讲,就是子类型能够完全替换父类型
BeyondHaven
·
2011-10-21 10:00
设计模式
生活
敏捷
测试
Class
出版
软件设计原则
----开-闭原则(OCP)
阅读更多软件实体(类、模块、函数等)应该是可以扩展的,同时还可以是不必修改的,更确切的说,函数实体应该:(1)对扩展是开放的当应用的需求变化时,我们可以对模块进行扩展,使其具有满足改变的新的行为。即:我们可以改变模块的功能(2)对更改是封闭的对模块进行扩展时,不必改动模块已有的源代码或二进制代码。分析:世界是变化的(而且变化很快),软件是对现实的抽象。---->软件必须能够扩展。如果任何修改都需要
helloyesyes
·
2011-10-08 08:00
软件设计原则
----开-闭原则(OCP)
软件实体(类、模块、函数等)应该是可以扩展的,同时还可以是不必修改的,更确切的说,函数实体应该:(1)对扩展是开放的当应用的需求变化时,我们可以对模块进行扩展,使其具有满足改变的新的行为。即:我们可以改变模块的功能(2)对更改是封闭的对模块进行扩展时,不必改动模块已有的源代码或二进制代码。 分析:世界是变化的(而且变化很快),软件是对现实的抽象。---->软件必须能够扩展。如果任何修改都需要改变
helloyesyes
·
2011-10-08 08:00
设计原则
软件设计原则
----开-闭原则(OCP)
设计一个模块时,应当使该模块在不被修改的前提下被扩展,即可在不必修改源代码的情况下改变该模块的行为。 陈述: 软件实体(类、模块、函数等)应该是可以扩展的,同时还可以是不必修改的,更确切的说,函数实体应该:(1)对扩展是开放的当应用的需求变化时,我们可以对模块进行扩展,使其具有满足改变的新的行为。即:我们可以改变模块的功能(2)对更改是封闭的对模块进行扩展时,不必改动模块已有的源代码或二进制代码。
BeyondHaven
·
2011-09-27 08:00
设计模式
struct
server
iterator
Class
扩展
软件设计原则
----开-闭原则(OCP)
设计一个模块时,应当使该模块在不被修改的前提下被扩展,即可在不必修改源代码的情况下改变该模块的行为。 陈述: 软件实体(类、模块、函数等)应该是可以扩展的,同时还可以是不必修改的,更确切的说,函数实体应该:(1)对扩展是开放的当应用的需求变化时,我们可以对模块进行扩展,使其具有满足改变的新的行为。即:我们可以改变模块的功能(2)对更改是封闭的对模块进行扩展时,不必改动模块已有的源代码或二进制代码。
beyondhaven
·
2011-09-27 00:00
软件架构
软件设计原则
----单一职责原则(SRP)
陈述:就一个类而言,应该只有一个导致其变化的原因分析:一个职责就是一个变化的轴线。一个类如果承担的职责过多,就等于将这些职责耦合在一起。一个职责的变化可能会虚弱或者抑止这个类完成其它职责的能力。多职责将导致脆弱性的臭味。示例1: Rectangle类具有两个职责:计算矩形面积的数学模型将矩形在一个图形设备上描述出来Rectangle类违反了SRP,具有两个职能——计算面积和绘制矩形这种对SRP的
beyondhaven
·
2011-09-26 08:02
软件架构
软件设计原则
----单一职责原则(SRP)
陈述:就一个类而言,应该只有一个导致其变化的原因分析:一个职责就是一个变化的轴线。一个类如果承担的职责过多,就等于将这些职责耦合在一起。一个职责的变化可能会虚弱或者抑止这个类完成其它职责的能力。多职责将导致脆弱性的臭味。示例1: Rectangle类具有两个职责:计算矩形面积的数学模型将矩形在一个图形设备上描述出来Rectangle类违反了SRP,具有两个职能——计算面积和绘制矩形这种对SRP的
BeyondHaven
·
2011-09-26 08:00
编程
c
测试
Class
扩展
图形
软件设计原则
——GRASP
CraigLarman氏在《ApplyingUMLandPatterns》一书中提出了GRASP设计模式的概念。作者称其为设计模式,其实,更好的理解应该为设计原则。因为,与GoF等设计模式不同的是,GoF等设计模式是针对特定问题而提出的解决方法,而GRASP则是站在面向对象设计的角度,告诉我们怎么样设计问题空间中的类与它们的行为责任,以及明确类之间的相互关系等等。GRASP可以说是GoF等设
bldwd
·
2011-08-06 11:00
软件设计原则
以前本站向大家介绍过一些软件开发的原则,比如优质代码的十诫和Unix传奇(下篇)中所以说的UNIX的设计原则。相信大家从中能够从中学了解到一些设计原理方面的知识,正如我在《再谈“我是怎么招聘程序”》中所说的,一个好的程序员通常由其操作技能、知识水平,经验层力和能力四个方面组成。在这里想和大家说说设计中的一些原则,我认为这些东西属于长期经验总结出来的知识。这些原则,每一个程序员都应该了解。但是请不要
goxohu
·
2011-07-21 12:00
设计原则
软件设计原则
之一:依赖倒转原则 DIP
软件设计原则
之一:依赖倒转原则 DIP 依赖倒转原则(Dependency Inversion Principle)讲的是:要依赖于抽象,不要依赖于具体。
上官车月
·
2011-07-20 10:00
java
编程
软件设计
dip
软件设计原则
Inversion of Control Containers and the Dependency Injection pattern 一,为什么要IOC IOC(控制反转或者叫依赖注入)Martin Fowler大师在他的文章中已经讲解的非常精彩了,这里实在不敢班门弄斧,只好简单地解释几句。我们使用抽象接口来隔离使用者和具体实现之间的依赖关系,但是不管再怎么抽象,最终还是要
json20080301
·
2011-07-04 15:00
设计原则
软件设计原则
——Design by Contract(契约式设计)
个人心得,权作讨论,切勿当真 DesignbyContract(契约式设计),以下简称DbC,字面意义来看,包含两个内容“责任”与“义务”,是对交易或互动中,两方之间关系的约束。换用软件行话来说,表示调用方与被调用方的,参数和返回值的Assert处理。Assert有三个,前提条件、后续条件、和不变式,前两个针对方法,而最后一个针对整个类,“前提条件”指完成function需要的参数必须为真,“后续
zuzong
·
2011-05-22 19:00
sql
浏览器
软件测试
UML
一些常用的
软件设计原则
在架构设计过程中,了解一些先辈们总结出来的常用的设计原则非常有用,在实践过程中,结合这些理论,相信架构水平会有质的提升,就像是一本武功秘籍,在学的过程中遵循它的rule,你的武功自然就上去了。我真的感觉这些原则非常有用: 1.Don't Repeat Yourself 在上一篇已经有阐述。 2.面向接口编程而不是面向实现的编程 接口是稳定的,也是抽象的,越抽象的东
tomyz0223
·
2011-05-17 10:00
设计模式
编程
应用服务器
软件测试
IOC
常用的
软件设计原则
-DRY
架构设计必须遵循一些原则,这个原则是经过很多年先辈们的总结,好的架构,必须先了解好的
软件设计原则
,遵循这些原则可以做出更好的架构。
tomyz0223
·
2011-04-28 10:00
软件测试
一些主要的
软件设计原则
一,开闭关法则:就是对于扩展要开放,对于修改要关闭,什么意思呢?就是说你的软件架构如果功能发生了变化,你应该是想着去扩展原来的类,而不是去修改原来的类,因为万一你修改了这个类,那么又有上万个类与这个类有着联系,那么你就要去改写上万个类了,所以,我们应该是去主动的扩展某个类,而不是去修改那个类,这个法则也是其他法则的基础 二。最少知道原则:就是说一个类A如果依赖于另一个类B,这个时候类B的一个
sakajiaofu
·
2011-03-10 20:00
C++
c
C#
软件设计原则
已经有很多人写过类似的文章了,不过我还是想记录下来,最近对设计原则的理解,哪天回头观看,也有点印象: 单一职责原则: 就一个类而言、应该仅有一个引起它变化的原因。这句话的意思是说,如果有多种不同类型的需求改变了,都需要对该类进行改变,那么这个类就违背了单一职责原则,这个度非常难把握,个人感觉很多时候,单一职责原则比较滞后,大部分情况下都是在需求变更的时候,才发现这个某些类单一职责原则没有太
Make it simpler
·
2011-01-28 22:00
软件设计原则
开闭元素(ocp) 对扩展开放,对修改关闭 里氏代换原则(LSP) 任何类出现的地方,子类一定可以出现(is-a) is-ais-like-ahas-a,要求我们使用接口中使用的方法,建议使用is-a方式 依赖倒转元素(DIP) 依赖于抽象,建议使用抽象 接口隔离元素(ISP)尽量小的单独的接口,而不要提供大的接口,是通信尽可能窄 合成复用元素(CARP)尽量采用合成和聚合的方式达到复
niu870781892
·
2010-12-14 23:00
扩展
六大
软件设计原则
六大
软件设计原则
最近在开设计模式方面的资料。设计模式这些东西,要常看看,这样会给自己在新项目设计的时候或者是老项目重构的时候提供一些思路。
剑父的技术之路
·
2010-11-24 11:00
数据库设计规范(一)
如图所示设计原则:建立
软件设计原则
,形成约定;命名规范:规定数据库对象命
oecp
·
2010-09-29 09:29
规范
职场
数据库设计
休闲
一:Java與模式
不变@变---软件设计的永恒之道 静@动----UML建模 可维护性&可复用性&独立
软件设计原则
(善为士者不武:一个好的软件设计师在其设计的软件投入使用之后很少作大规模的修改
milenfan
·
2010-09-04 09:00
java
设计模式
c
算法
UML
软件设计原则
最近在读 《java desion》这本书,里面介绍了26种设计模式和几种设计原则。笔者会根据读书的进度,将内容与朋友们分享。 这本书里介绍了以下几种设计原则 1 开-闭原则(Open-Close Princilpe,OCP) Software entities should be o
85977328
·
2010-08-27 09:00
设计模式
读书
软件设计原则
最近在读 《java desion》这本书,里面介绍了26种设计模式和几种设计原则。笔者会根据读书的进度,将内容与朋友们分享。 这本书里介绍了以下几种设计原则 1 开-闭原则(Open-Close Princilpe,OCP) Software entities should be o
85977328
·
2010-08-27 09:00
设计模式
读书
软件设计原则
转自 http://aladdin.iteye.com/blog/40809 http://blog.csdn.net/ponent2005/archive/2005/07/18/428305.aspx 一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的指责.应该把多于的指责分离出去,分别再创建一些类来完
wangleifire
·
2010-07-27 11:00
设计模式
数据结构
编程
软件测试
OO
软件设计原则
转自 http://aladdin.iteye.com/blog/40809 http://blog.csdn.net/ponent2005/archive/2005/07/18/428305.aspx 一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的指责.应该把多于的指责分离出去,分别再创建一些类来完
wangleifire
·
2010-07-27 11:00
设计模式
数据结构
编程
软件测试
OO
设计模式--外观模式(Facade Pattern)
软件设计原则
:要减少对象之间的交互,只留下几个“密友”。这个原则被成为“最少知识(LeastKnowledge)原则”,它告诉我们只和自己的密友谈话。
liuxi1024
·
2010-02-03 09:00
设计模式
软件测试
《Head First设计模式》阅读笔记.第三章
软件设计原则
:类应该对扩展开放,对修改关闭。这就是我们常说的开放-关闭原则。 *开放-关闭原则使类容易扩展,
臧圩人
·
2010-01-13 12:00
设计模式
编程
qq
软件测试
OO
《Head First设计模式》阅读笔记.第三章
软件设计原则
:类应该对扩展开放,对修改关闭。这就是我们常说的开放-关闭原则。 *开放-关闭原则使类容易扩展,
臧圩人
·
2010-01-13 12:00
设计模式
编程
qq
软件测试
OO
《Head First设计模式》阅读笔记.第一章
软件设计原则
:封装变化--把软件中那些在将来可能产生变化的地方独立出来,与其他部分分割以减少变化时对它们的影响。这样的设计可以使系统变得有弹性,更好地应对变化。
臧圩人
·
2010-01-12 10:00
设计模式
编程
算法
OO
Go
《Head First设计模式》阅读笔记.第一章
软件设计原则
:封装变化--把软件中那些在将来可能产生变化的地方独立出来,与其他部分分割以减少变化时对它们的影响。这样的设计可以使系统变得有弹性,更好地应对变化。
臧圩人
·
2010-01-12 10:00
设计模式
编程
算法
OO
Go
软件设计原则
之一 :信息隐藏(information hiding)或者封装(encapsulation)
模块之间通过他们的api通信,一个模块不需要知道另外一个模块的内部情况,这就被称为信息隐藏或封装。请问为什么需要封装?答:需要封装的原因很多,其中大多数的原因都源于这么一个事实:你可以有效的解除组成系统个模块之间的耦合关系,使这些模块可以独立开发,测试,优化,修改,理解,这样可以加快系统开发的速度,因为这些模块可以并行开发。它也减轻了维护的负担,因为我们可以更快点的理解这些模块,并在调用的时候不影
healthandbeauty
·
2009-10-29 09:00
thread
C++
c
软件测试
C#
软件设计原则
1.开-闭原则 开闭原则的定义 Software entities should be open for extension, but closed for modification. 软件实体应该对扩展是开放的,但是对于修改应当是关闭的. 1).客户的需求是不稳定的,通过扩展已有的软件系统而不是通过修改软件系统来满足客户的需求,这样的软件系统就满足开-闭原则,即软件
xiebo1983
·
2009-09-28 11:00
编程
软件设计原则
――GRASP
CraigLarman氏在《ApplyingUMLandPatterns》一书中提出了GRASP设计模式的概念。作者称其为设计模式,其实,更好的理解应该为设计原则。因为,与GoF等设计模式不同的是,GoF等设计模式是针对特定问题而提出的解决方法,而GRASP则是站在面向对象设计的角度,告诉我们怎么样设计问题空间中的类与它们的行为责任,以及明确类之间的相互关系等等。GRASP可以说是GoF等设计模式
QYin
·
2009-08-19 17:12
职场
休闲
软件设计原则
——GRASP
CraigLarman氏在《ApplyingUMLandPatterns》一书中提出了GRASP设计模式的概念。作者称其为设计模式,其实,更好的理解应该为设计原则。因为,与GoF等设计模式不同的是,GoF等设计模式是针对特定问题而提出的解决方法,而GRASP则是站在面向对象设计的角度,告诉我们怎么样设计问题空间中的类与它们的行为责任,以及明确类之间的相互关系等等。GRASP可以说是GoF等设计模式
QYin
·
2009-08-19 17:12
职场
休闲
java
软件设计原则
――GRASP
CraigLarman氏在《ApplyingUMLandPatterns》一书中提出了GRASP设计模式的概念。作者称其为设计模式,其实,更好的理解应该为设计原则。因为,与GoF等设计模式不同的是,GoF等设计模式是针对特定问题而提出的解决方法,而GRASP则是站在面向对象设计的角度,告诉我们怎么样设计问题空间中的类与它们的行为责任,以及明确类之间的相互关系等等。GRASP可以说是GoF等设计模式
QYin
·
2009-08-19 17:12
职场
休闲
软件设计原则
高内聚、低耦合
http://www.blogjava.net/realsmy/archive/2008/05/25/109245.html 内聚:一个模块内各个元素彼此结合的紧密程度耦合:一个软件结构内不同模块之间互连程度的度量最近编码的时候,总是在犹豫是把某个方法封装在一个类里,还是单独的封装成一个类。这让我突然想起内聚耦合这两个名词。我们一直追求着,高内聚,低耦合。对于低耦合,我粗浅的理解是:一个完整的系
davidx
·
2009-07-18 23:00
html
数据结构
.net
生活
软件设计原则
与方法
“开-闭”原则 (Open-Closed principle, OCP) 一个软件实体应当对扩展开放,对修改关闭。 Software entities should be open for extension, but closed for modification. 在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。 “可变性的封装原则”从工程的角度讲解了如何实现“开
wanjianfei
·
2009-06-16 16:00
数据结构
.net
Blog
[翻译-ASP.NET MVC]Contact Manager开发之旅迭代3 - 验证表单
在这个系列中,StephenWalther将演示如何通过ASP.NETMVCframework结合单元测试、TDD、Ajax、
软件设计原则
及设计模式创建一个完整的ContactManager应用。
紫色永恒
·
2009-03-27 16:00
[翻译-ASP.NET MVC]Contact Manager开发之旅迭代3 - 验证表单
在这个系列中,StephenWalther将演示如何通过ASP.NETMVCframework结合单元测试、TDD、Ajax、
软件设计原则
及设计模式创建一个完整的ContactManager应用。
紫色永恒
·
2009-03-27 16:00
[翻译-ASP.NET MVC]Contact Manager开发之旅之迭代2 - 修改样式,美化应用
在这个系列中,StephenWalther将演示如何通过ASP.NETMVCframework结合单元测试、TDD、Ajax、
软件设计原则
及设计模式创建一个完整的ContactManager应用。
紫色永恒
·
2009-03-19 14:00
[翻译-ASP.NET MVC]Contact Manager开发之旅之迭代2 - 修改样式,美化应用
在这个系列中,StephenWalther将演示如何通过ASP.NETMVCframework结合单元测试、TDD、Ajax、
软件设计原则
及设计模式创建一个完整的ContactManager应用。
紫色永恒
·
2009-03-19 14:00
[翻译-ASP.NET MVC]Contact Manager开发之旅
在这个系列中,StephenWalther将演示如何通过ASP.NETMVCframework结合单元测试、TDD、Ajax、
软件设计原则
及设计模式创建一个完整的ContactManager应用。
紫色永恒
·
2009-03-17 17:00
[翻译-ASP.NET MVC]Contact Manager开发之旅之迭代1 - 创建Contact Manager应用
在这个系列中,StephenWalther将演示如何通过ASP.NETMVCframework结合单元测试、TDD、Ajax、
软件设计原则
及设计模式创建一个完整的ContactManager应用。
紫色永恒
·
2009-03-17 17:00
设计模式的学习
软件设计原则
: 针对接口编程,而不是针对实现. 不要滥用继承,理清继承和组合的关系. [继承处理类之间的静态关系,组合处
wapysun
·
2009-02-28 16:00
设计模式
设计模式的学习
软件设计原则
:针对接口编程,而不是针对实现.不要滥用继承,理清继承和组合的关系.[继承处理类之间的静态关系,组合处理对象间的动态关系]分清层次,封装变化点. 类设计原则:
kkdelta
·
2009-02-28 16:00
设计模式
数据库
oop
存储
扩展
inheritance
话说IOC
IOC模式其核心思想是引入第三个类进行解耦,涉及的一些
软件设计原则
和模式:针对接口编程+工厂模式+反射技术等,其中还引入了beanID此间接层来
xinglongbing
·
2009-02-19 23:14
话说IOC
IOC模式其核心思想是引入第三个类进行解耦,涉及的一些
软件设计原则
和模式:针对接口编程+工厂模式+反射技术等,其中还引入
xinglongbing
·
2009-02-19 23:00
设计模式
编程
bean
IOC
软件设计原则
单一职责原则-手机拍摄UFO效果不佳 就一个类而言,应该仅有一个引起它变化的原因。职责简单一些,复用更加轻松。 手机虽然可以拍照,但是效果很差。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏[ASD]。 如果你能够想到多于一个
boluo1982107
·
2008-12-10 13:00
编程
数据库
工作
扩展
手机
extension
软件设计原则
开闭原则 OCP(Open-Closed Principle): 对扩展开放,对修改关闭. 抽象和接口是关键. 里氏代换原则 LSP(Liskov Substitution Principle): 如果对于每一个类型为T1的对象o1,都有类型为T2的对象o2, 使得以T1定义的所有程序P在所有对象o1都代换为o2时, 程序P的行为没有变化, 那么类型T2是类型T1的子类型。反
hanlingbo2008
·
2008-11-14 11:00
编程
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他