适配器模式的实际应用
时间:2012-6-13
你可以在ActiveRecord(Ruby on Rails中的对象和关系型数据库的关联器)中找到适配器模式的经典应用。ActiveRecord能够处理不同的数据库系统;MYSQL,Oracle和Postgres,要不用Sqlserver。所有这些数据库系统提供一个Ruby API就好了,但是所有的API都各不相同,这就不好了,例如,你可以有一个MYSQL数据库连接,而你要执行一些SQL操作,那么你需要调用query方法:
result = mysql_connection.query(sql)
但是如果你是在使用Sybase,那么你需要使用sql方法
result = sybase_connection.sql(sql)
同时,如果你还需要使用Oracle,那么你得调用execute方法,而且获得的乱加结构是一个指向结果的指针而不是结果本身。这一切看上去就好像所有的这些数据库的作者都一起开过碰头会,商量好了彼此不许使用和对方相似的实现。