面向对象的设计原则

 一、“开-闭”原则(OCP)对可变性封装

       一个软件应该对扩展开放,对修改关闭。它的核心含意是:一个好的设计应该能够容纳新的功能需求的增加,但是增加的方式不是通过修改又有的模块(类),而是通过增加新的模块(类)来完成的。如果一个设计能够遵循OCP,那么就能够有效的避免上述的问题。

   要实现OCP的关键是抽象。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改(closed for modification)的;同时,通过从这个抽象体派生,也可扩展此模块的行为功能。

http://www.cnblogs.com/jigee/archive/2006/08/12/475106.html

二、里氏替换原则(LSP)

   LSP:LSP The The Liskov Substitution Principle。

   若对于每一个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P的行为功能不变,则S是T的子类型。
   “Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“继承必须确保超类所拥有的性质在子类中仍然成立。”也就是说,当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。 该原则称为Liskov Substitution Principle——里氏替换原则。
LSP原则是符合OCP原则应用程序的一项重要特性。

http://www.blogjava.net/ghawk/archive/2006/01/18/28545.html

三、依赖倒转原则(DIP)针对接口编程

高层模块不应该依赖于低层模块。二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。

四、接口隔离原则(ISP)恰当的划分角色和接口

一个没有经验的设计师往往想节省接口的数目,将一些功能相近或功能相关的接口合并,并将这看成是代码优化的一部分。

定义:从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在 最小的接口上的。 使用多个专门的接口比使用单一的总接口要好。

五、合成/聚合复用原则(CARP)尽量使用合成/聚合、尽量不使用继承

尽量使用合成/聚合、尽量不使用继承
定义:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用这些对象的目的

六、SRP(Single Responsibility Principle 单一职责原则)

就一个类而言,应该仅有一个引起它变化的原因。

http://www.blogjava.net/ghawk/archive/2006/01/09/27312.aspx

http://www.blog999.com/c/562292.html

 文章收藏:

面向对象五大设计原则:(1) www.java-asp.net/java/200510/t_41750.html 

                                            (2) www.java-asp.net/java/200511/t_44376.html

                                            (3) www.java-asp.net/java/200511/t_44380.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值