名字: 适配器模式(Adapter)
别名: 包装器(Wrapper)
意图: [b]将一个类的接口转换成客户希望的另外一个接口[/b]. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
动机: 为了复用而设计的工具箱不能被复用, 原因仅仅是因为它的接口不匹配.
[img]http://dl.iteye.com/upload/attachment/186824/0b1e5ea5-6fc3-3dcf-8316-f33ac017a6b1.jpg[/img]
别名: 包装器(Wrapper)
意图: [b]将一个类的接口转换成客户希望的另外一个接口[/b]. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
动机: 为了复用而设计的工具箱不能被复用, 原因仅仅是因为它的接口不匹配.
class Connection
def request
raise "Abstract method"
end
end
class MysqlAdapter < Connection
attr_accessor :connection
def initialize
@connection = MysqlConnection.new
end
def request
@connection.request
end
end
class MysqlConnection
def initialize
end
def request
puts '请求连接 Mysql 数据库'
end
end
mysql_adapter = MysqlAdapter.new
mysql_adapter.request
[img]http://dl.iteye.com/upload/attachment/186824/0b1e5ea5-6fc3-3dcf-8316-f33ac017a6b1.jpg[/img]