首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>php>php文摘>正文

PHP程序61条面向对象分析设计的经验原则

http://www.oklinux.cn  2008-10-24  ccidnet 习明  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 。 ----- Arthur J.Riel

(1)所有数据都应该隐藏在所在的类的内部。

(2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。

(3)尽量减少类的协议中的消息。

(4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。

(5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。

如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数。

(6)不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。

(7)类之间应该零耦合,或者只有导出耦合关系。也即,一个类要么同另一个类毫无关系,要么只使用另一个类的公有接口中的操作。

(8)类应该只表示一个关键抽象。

包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不  造成任何影响 .

(9)把相关的数据和行为集中放置。

设计者应当留意那些通过get之类操作从别的对象中获取数据的对象。这种类型的行为暗示着这条经验原则被违反了。

(10)把不相关的信息放在另一个类中(也即:互不沟通的行为)。

朝着稳定的方向进行依赖.

(11)确保你为之建模的抽象概念是类,而不只是对象扮演的角色。

(12)在水平方向上尽可能统一地分布系统功能,也即:按照设计,顶层类应当统一地共享工作。

(13)在你的系统中不要创建全能类/对象。对名字包含Driver、Manager、System、Susystem的类要特别多加小心。

规划一个接口而不是实现一个接口。

(14)对公共接口中定义了大量访问方法的类多加小心。大量访问方法意味着相关数据和行为没有集中存放。

(15)对包含太多互不沟通的行为的类多加小心。

这个问题的另一表现是在你的应用程序中的类的公有接口中创建了很多的get和set函数。

(16)在由同用户界面交互的面向对象模型构成的应用程序中,模型不应该依赖于界面,界面则应当依赖于模型。

(17)尽可能地按照现实世界建模(我们常常为了遵守系统功能分布原则、避免全能类原则以及集中放置相关数据和行为的原则而违背    这条原则) 。

(18)从你的设计中去除不需要的类。

一般来说,我们会把这个类降级成一个属性。

(19)去除系统外的类。

系统外的类的特点是,抽象地看它们只往系统领域发送消息但并不接受系统领域内其他类发出的消息。

(20)不要把操作变成类。质疑任何名字是动词或者派生自动词的类,特别是只有一个有意义行为的类。考虑一下那个有意义的行为是  否应当迁移到已经存在或者尚未发现的某个类中。

(21)我们在创建应用程序的分析模型时常常引入代理类。在设计阶段,我们常会发现很多代理没有用的,应当去除。

(22)尽量减少类的协作者的数量。

一个类用到的其他类的数目应当尽量少。

(23)尽量减少类和协作者之间传递的消息的数量。

(24)尽量减少类和协作者之间的协作量,也即:减少类和协作者之间传递的不同消息的数量。

(25)尽量减少类的扇出,也即:减少类定义的消息数和发送的消息数的乘积。

(26)如果类包含另一个类的对象,那么包含类应当给被包含的对象发送消息。也即:包含关系总是意味着使用关系。

(27)类中定义的大多数方法都应当在大多数时间里使用大多数数据成员。

(28)类包含的对象数目不应当超过开发者短期记忆的容量。这个数目常常是6。

当类包含多于6个数据成员时,可以把逻辑相关的数据成员划分为一组,然后用一个新的包含类去包含这一组成员。

(29)让系统功能在窄而深的继承体系中垂直分布。

共2页: 上一页 1 [2] 下一页

上一篇:Flash PHP Mysql简单留言本制作实例教程   下一篇:微软发布为PHP提供的SQL Server 2005驱动

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Flash PHP Mysql简单留言本制作实例教程
·微软发布为PHP提供的SQL Server 2005驱动
·PHP程序开发中的中文编码问题
·Php基础知识了解
·PHP5程序中新增加日期(date)函数的常量
·将SSH与PHP相连接 确保传输数据的安全
·使用PHP程序直接调用文本文件的内容实例
·BluePage通用分页类助开发者提高开发效率
·安全基础IIS 6的PHP最佳配置
·PHP程序百行代码快速构建简易聊天室方法
·网友分享:php与XML、XSLT、Mysql结合运用
·PHP服务器变量设置的方法介绍
·如何正确理解PHP程序错误信息的表示含义
·Oracle与PHP实例开发Myers订单跟踪系统
·Windows XP系统下安装apache php mysql
·PHP4和PHP5性能大对比
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·几秒搭建Web服务器 绿色PHP环境套件e2p
·phpMyAdmin 3.1.1——MySQL数据库管理
·网友分享:十四条令PHP初学者头疼问题大
·Oracle与PHP实例开发Myers订单跟踪系统
·网友分享:php与XML、XSLT、Mysql结合运
·安全基础IIS 6的PHP最佳配置
·将SSH与PHP相连接 确保传输数据的安全
·Php基础知识了解
·微软发布为PHP提供的SQL Server 2005驱
·Flash PHP Mysql简单留言本制作实例教
·PHP程序开发中的中文编码问题
·PHP5程序中新增加日期(date)函数的常量
  阅读排行
·使PHP自定义函数返回多个值
·Flash PHP Mysql简单留言本制作实例教
·OpenBSD可加载内核模块编程完全指南
·PHP5中PDO的简单使用
·微软发布为PHP提供的SQL Server 2005驱
·(PHP)模板引擎Smarty介绍
·php5学习笔记
·几秒搭建Web服务器 绿色PHP环境套件e2p
·网友分享:十四条令PHP初学者头疼问题大
·PHP做Web项目的优缺点
·Windows XP系统下安装apache php mysql
·phpMyAdmin 3.1.1——MySQL数据库管理
·Servlet、Jsp中的多国语言显示
·Oracle与PHP实例开发Myers订单跟踪系统
·专家预言:PHP将比Java更受欢迎
网摘收藏: