我偶然发现了此类,想知道XYZAdapter是否正确。我知道适配器模式是如何工作的,但是此解决方案有点不同:与其实现DataTable接口和映射适当的方法调用,不如通过复制值并公开此对象来创建新的DataTable对象。就是这样看起来:
class Adapter
{
private NodeList list;
DataTable table { get { return CreateTable(); } }
Adapter(NodeList nl)
{
list = nl;
}
private DataTable CreateTable()
{
// Fetch Data in NodeList, create a Table and return it
// needs to be splitted in smaller methods ;D
}
}
通常我是用这种方式做的,但是DataTable接口是enormus:
class Adapter : DataTable
{
private NodeList list;
DataTable table { get { return CreateTable(); } }
Adapter(NodeList nl)
{
list = nl;
}
// Here are all the DataTable methods mapped to NodeList
}
提前致谢!
最佳答案
适配器将不兼容的接口改编为兼容的接口。例如它转换/包裹一个圆形的钉子以形成一个方形的钉子,使其适合一个方形的槽。
从技术上来说,您的解决方案不是适配器模式-而是转换器或转换器。关键区别在于您的适配器不能在需要DataTable实例的方法中替换。