6

不兼容结构的协调——适配器模式(二)

 3 years ago
source link: https://blog.csdn.net/LoveLion/article/details/8624412
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

9.3 完整解决方案

      Sunny软件公司开发人员决定使用适配器模式来重用算法库中的算法,其基本结构如图9-4所示:

图9-4  算法库重用结构图

       在图9-4中,ScoreOperation接口充当抽象目标,QuickSort和BinarySearch类充当适配者,OperationAdapter充当适配器。完整代码如下所示:

       为了让系统具备良好的灵活性和可扩展性,我们引入了工具类XMLUtil和配置文件,其中,XMLUtil类的代码如下所示:

       配置文件config.xml中存储了适配器类的类名,代码如下所示:

       编写如下客户端测试代码:

        编译并运行程序,输出结果如下:

成绩排序结果:

50,69,76,84,88,90,91,96,

查找成绩90:

找到成绩90。

查找成绩92:

没有找到成绩92。

       在本实例中使用了对象适配器模式,同时引入了配置文件,将适配器类的类名存储在配置文件中。如果需要使用其他排序算法类和查找算法类,可以增加一个新的适配器类,使用新的适配器来适配新的算法,原有代码无须修改。通过引入配置文件和反射机制,可以在不修改客户端代码的情况下使用新的适配器,无须修改源代码,符合“开闭原则”。

【作者:刘伟  http://blog.csdn.net/lovelion


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK