整洁代码原则

OOP 原则
 

OPP(Object-oriented programming,面向对象编程)是一种方法,用于将现实世界的对象

抽象为可供代码使用的类。其思想是:如果可以在代码中建立业务问题的模型,那就可以

更轻松地创建能够正确解决这些业务问题的应用程序,而且其解决方式能够更好地反映现

实世界。大多数现代开发语言都支持OOP。利用OOP 可以更轻松地将现实世界概念化,

开发出满足业务需要的应用程序,同时使各个代码单元短小,能够重用。拥有坚实的OOP

基础,那就可以很轻松地理解和使用TDD 中用到的一些概念。

笼统来说,OOP 有3 个主要原则。过去几年,许多人一直坚持还有其他一些原则。这

些人也不一定是错的。但如果对这些主张稍做分析,马上就会发现,这些附加原则要么是

想吹捧一种语言相对于另一种语言的优势,要么是想贬低一种语言或平台,说它不是真正

的OOP。还有一种可能,就是它们组成了一个愿望清单,开发人员希望在自己选择的语言

中见到这些功能。这些附加原则不一定是无效的;绑定和消息传送都是重要的概念,在某

些语言中,它们和这里讨论的原则同等重要。但OOP 的三条一般原则是:封装、继承和多态。
 

1. 封装

“封装原则”要求:创建的类应当是黑盒。换句话说,类的内部不允许客户端访问。

客户端只有一种方式可以与类交互或改变其状态,那就是通过类的公共接口。客户端在任

何情况下都不能也不需要知道一个类是如何执行其行为的。客户端只知道利用哪些方法及/

或属性来获取它所需要的信息和交互。

真的不需要在意类的客户端如何完成其工作,只要获取所需要的结果即可。还需要确

保类能够自由执行其任务,而不存在未经许可修改其内部状态的风险。在设计类时,非常

重要的一点就是正确设定方法、属性和变量的作用域。只有那些作为公共接口组成部分的

成员才应当声明为公共成员。只有那些必须供类的后代使用的成员才应当声明为受保护的。

所有其他成员都应当是私有的。对于新接触这一概念的开发人员来说,有一条很不错的经

验法则,那就是把所有成员都设置为私有的,在需要时再将某一成员变为公共成员。另外,

永远都不要允许成员变量设置为私有之外的内容;如果一个后代类需要使用该变量,可以

让它通过一个受保护的属性来访问。如果需要使该变量成为公共接口的一部分,应当将它

包装在一个公共属性中。永远都不要简单地允许对内部变量进行不加监视或不加控制的

访问。
 
2. 继承
在应用程序中构建类时,很快可以发现,一些类之间存在很自然的分层关系。这些类
可能非常相似,但它们的功能并不是完全一样。在这些情况下,可以将公共功能放在一个
基类中,然后再从该基类中派生出目的性更强的类来。这就是“继承”,是OOP 中一个非
常重要的概念。
 
3. 多态性
多态性(Polymorphism)可能是OOP 中最容易误解的原则了。“多态性”这一概念是指:
尽管两个类可能共享某一行为,但它们可能采用完全不同的方式来实现这一行为。多态性
多少与继承及它所生成的类之间的关系有关。
posted @ 2013-08-05 09:25  沙耶  阅读(410)  评论(0编辑  收藏  举报