下载本文示例代码
摘要:你想写出无需改变源代码就可以进行扩展的程序吗?这篇文章介绍了如何使用interface和动态class载入来创建高扩展性的系统。从中你也可以学习到如何令其他的编程者和用户不需你的源代码,就可以对程序进行扩展。首先我们看一个没有使用interface和动态载入的简单例子,然后再讲述一个动态载入类的例子,这些类是由一个文件或者数据库的表格中读取的。 你曾经开发过一个要经常添加新功能的应用吗?在下面的例子中,市场部将会为每个顾客提供各种各样的价格处理。你的程序需要处理这些新的需求,你也必须让用户可以定制你的软件而无需改变源代码。 你可以做到避免修改现有的代码并且测试加入的新功能吗?你可以做到无需重新编译全部的东西来加入新的类吗?答案是可以的,你可能已经猜到了,就是使用interface和动态类载入。 要说明一下的是,为了说明方便,这里介绍的类和体系都是经过简化的。 什么是interface(接口)? interface只是描述一个对象是如何被调用的。当你定义了一个接口,你就定义了其它的对象如何使用它。 对于大部分使用Java的人来说,你们可能已经知道接口是什么东西。但对于那些仍然不清楚的人,我将介绍一些基本的知识,然后创建一些复杂的例子。如果你已经很清楚接口的知识,你可以直接跳到“使用字符串来指定类名字”的部分。 接口的威力 以下的例子说明了接口的威力。假定你的客户是搞经纪的,他们想让你建立一个交易的系统。他们的交易是各种各样的:包括有股票、债券和日用品等等。不同客户的交易数量也是不一样的,该数量由客户称为pricing plans的东东来定义。 你首先考虑类的设计。主要的类和它们的属性由客户来定义,可以是: Customer(顾客):Name(名字),Address(地址),Phone(电话)和PricingPlan Trade(交易):TradeType(股票、债券或者日用品),ItemTraded(股票的记号)、NumberOfItemsTraded, ItemPrice, CommissionAmount PricingPlan:通过一个过程的调用来计算该交易的CommissionAmount共6页。 1 2 3 4 5 6 :
摘要:你想写出无需改变源代码就可以进行扩展的程序吗?这篇文章介绍了如何使用interface和动态class载入来创建高扩展性的系统。从中你也可以学习到如何令其他的编程者和用户不需你的源代码,就可以对程序进行扩展。首先我们看一个没有使用interface和动态载入的简单例子,然后再讲述一个动态载入类的例子,这些类是由一个文件或者数据库的表格中读取的。 你曾经开发过一个要经常添加新功能的应用吗?在下面的例子中,市场部将会为每个顾客提供各种各样的价格处理。你的程序需要处理这些新的需求,你也必须让用户可以定制你的软件而无需改变源代码。 你可以做到避免修改现有的代码并且测试加入的新功能吗?你可以做到无需重新编译全部的东西来加入新的类吗?答案是可以的,你可能已经猜到了,就是使用interface和动态类载入。 要说明一下的是,为了说明方便,这里介绍的类和体系都是经过简化的。 什么是interface(接口)? interface只是描述一个对象是如何被调用的。当你定义了一个接口,你就定义了其它的对象如何使用它。 对于大部分使用Java的人来说,你们可能已经知道接口是什么东西。但对于那些仍然不清楚的人,我将介绍一些基本的知识,然后创建一些复杂的例子。如果你已经很清楚接口的知识,你可以直接跳到“使用字符串来指定类名字”的部分。 接口的威力 以下的例子说明了接口的威力。假定你的客户是搞经纪的,他们想让你建立一个交易的系统。他们的交易是各种各样的:包括有股票、债券和日用品等等。不同客户的交易数量也是不一样的,该数量由客户称为pricing plans的东东来定义。 你首先考虑类的设计。主要的类和它们的属性由客户来定义,可以是: Customer(顾客):Name(名字),Address(地址),Phone(电话)和PricingPlan Trade(交易):TradeType(股票、债券或者日用品),ItemTraded(股票的记号)、NumberOfItemsTraded, ItemPrice, CommissionAmount PricingPlan:通过一个过程的调用来计算该交易的CommissionAmount共6页。 1 2 3 4 5 6 :
下载本文示例代码
动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用动态扩展Java应用
阅读(134) | 评论(0) | 转发(0) |