方案的重复使用

创建并测试好一个类后,它应(从理想的角度)代表一个有用的代码单位。但并不象许多人希望的那样,这种重复使用的能力并不容易实现;它要求较多的经验以及洞察力,这样才能设计出一个好的方案,才有可能重复使用。
许多人认为代码或设计方案的重复使用是面向对象的程序设计提供的最伟大的一种杠杆。
为重复使用一个类,最简单的办法是仅直接使用那个类的对象。但同时也能将那个类的一个对象置入一个新类。我们把这叫作“创建一个成员对象”。新类可由任意数量和类型的其他对象构成。无论如何,只要新类达到了设计要求即可。这个概念叫作“组织”——在现有类的基础上组织一个新类。有时,我们也将组织称作“包含”关系,比如“一辆车包含了一个变速箱”。
对象的组织具有极大的灵活性。新类的“成员对象”通常设为“私有”(Private),使用这个类的客户程序员不能访问它们。这样一来,我们可在不干扰客户代码的前提下,从容地修改那些成员。也可以在“运行期”更改成员,这进一步增大了灵活性。后面要讲到的“继承”并不具备这种灵活性,因为编译器必须对通过继承创建的类加以限制。
由于继承的重要性,所以在面向对象的程序设计中,它经常被重点强调。作为新加入这一领域的程序员,或许早已先入为主地认为“继承应当随处可见”。沿这种思路产生的设计将是非常笨拙的,会大大增加程序的复杂程度。相反,新建类的时候,首先应考虑“组织”对象;这样做显得更加简单和灵活。利用对象的组织,我们的设计可保持清爽。一旦需要用到继承,就会明显意识到这一点。

时间: 2024-08-30 10:10:11

方案的重复使用的相关文章

网站防刷方案

目录[-] 网站防刷方案 网站重复请求解决方案 Mr. Neo Chen (netkiller), 陈景峰(BG7NYT) 1. 访问网站所涉及环节 2. 浏览器款控制方案 3. CDN 与 反向代理 4. 网络设备控制方法 5. 服务器上做控制 5.1. 操作系统部分 提示 5.2. WEB 服务器部分 6. 通过程序控制访问行为 提示 7. 总结 网站防刷方案 摘要 这是讲述如何防止重复请求你的网站, 包括如,爬虫,数据采集,刷排名,批量注册,批量发帖,利用漏洞获取网站数据等等. 1. 访问

文档生成框架

序言 Word文档生成在许多项目中都是需要的,目前来看有两种方案,一种是通过Apache POI工具包.iText来生成,另外一种是利用Office Open Xml规范来进行生成.各种方案各有优缺点,这里不对其进行详细比较,已经有许多人进行过深入的比较,详细请咨询谷哥和度娘.这里采用的方案是利Office Open Xml的方式进行文档生成. 对于采用POI,iText来说,要生成复杂的Doc文件,其实并不容易.而采用Xml结构生成,去把一个文档生成xml文件,看看里面的内容,估计也会是满头是

.NET中"延迟"特性的几个陷阱

.NET发展至今,其实各处都有"延迟(Lazy)"的痕迹,一个小小的"Laziness"给我们带来了不少灵活性1."延迟"的关键就在于"只在需要的时候处理数据",老赵曾经在多篇文章中提到了类似的概念,如<高阶函数.委托与匿名方法>及<您善于使用匿名函数吗?>.不过"延迟"本身也会给您带来一些陷阱,某些陷阱您很有可能也曾经遇到过.这篇文章便是总结了延迟特性的集中常见陷阱,并给出应对方案

JAVA编程思想 课程进展 一

编程 第1章 对象入门 "为什么面向对象的编程会在软件开发领域造成如此震憾的影响?" 面向对象编程(OOP)具有多方面的吸引力.对管理人员,它实现了更快和更廉价的开发与维护过程.对分析与设计人员,建模处理变得更加简单,能生成清晰.易于维护的设计方案.对程序员,对象模型显得如此高雅和浅显.此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务.每个人都可从中获益,至少表面如此.如果说它有缺点,那就是掌握它需付出的代价.思考对象的时候,需要采用形象思维,而不是程序化的思维.与程序

如何更好的理解存储的重要性

由于大量的公司治理法规.网页数量成倍增加,导致以数字格式保存音频,视频及静态图像的需求不 断增长,如何控制存储成为了过去几年中各大公司CIO们(首席信息官)所关注的焦点.对大多数以磁盘.磁带和存储服务器为主打产品的公司来说,这些海量数据无疑是件好事,这意味着,他们能向用户提供存储媒介以解决数以亿计的信息存储问题,从而获得较大的利润. 然而,很少有公司像日本日立数据系统公司(HDS)这一存储巨人一样,将其自身定位于终端存储数据库与工具供应商,从而使得对海量信息的控制更加智能化. Hu Yoshid

thinking in java

写在前面的话 引言: 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类: 尽管extends关键字暗示着我们要为接口"扩展"新功能,但实情并非肯定如此.为区分我们的新类,第二个办法是改变基础类一个现有函数的行为.我们将其称作"改善"那个函数. 为改善一个函数,只需为衍生类的函数建立一个新定义即可.我们的目标是:"尽管使用的函数接口未变,但它的新版本具

当预算缩减后IT经理存储采购之绝招

 现在的经济形势,让企业更加注重各环节的成本控制,存储系统也不例外.尤其是在目前绝大部分企业已经意识到数据的重要性,全部开始做数据备份.但爆炸性数据的增长让备份的成本居高不下,与之而来的还有数据中心的能源消耗也不断加剧.庞大的数据管理起来也十分麻烦,管理的成本也让IT经理们十分头疼. 好在现在有很多新的存储技术出现了,这些技术从一定程度上缓解了存储系统成本的上升.下面就让我们看看,都有哪些存储技术可以让IT经理们省钱. 让磁盘备份成为主流 前几年的的备份方案基本是基于磁带的,其弊端就不必多说了,

TE安普布线解决方案 助力绿色数据中心建设

一说起绿色数据中心,大家就想起服务器节电.服务器规划.空调能源规划等这些有目共睹的"大指标",是绿色数据中心的必要元素,然而网络布线.乃至后续http://www.aliyun.com/zixun/aggregation/39016.html">网络维护难易程度等这些无数隐藏在背后"小指标",更是构建绿色数据中心关键所在.因为数据中心的能耗与线缆的密度和安装密切相关,更少的线缆更合理的利用,不但可提升机柜内气流流动效率,更会减少安全风险,降低能耗.

JavaScript的基准测试-不服跑个分?

原文:Bulletproof JavaScript benchmarks 做JavaScript的基准测试并没有想的那么简单.即使不考虑浏览器差异所带来的影响,也有很多难点-或者说陷阱需要面对. 这是为何我创建了jsPerf的一个原因,一个你可以轻松创建并分享各种代码片段对比结果的简单工具.用起来非常省事,只需把想要测试的代码录入然后jsPerf会为你创建好可以跨平台跑起来的测试用例. 内部实现上,最开始jsPerf用的是一个基于JSLitmus的基准测试库,我将它称作Benchmark.js.