2010-12-15 82 views
2

通常用于使遗留代码可测试。例如,有可能会像创建实例以调用静态方法的模式名称

int importantNumber = DataAccess.LoadValue(); 

静态调用的负载和创建可实例化来调用这些类,这通常是一个接口之后,像

public int LoadValue(){ 
    return DataAccess.LoadValue(); 
} 

那么我就可以使用DI或其他方式,并用

int importantNumber = _dataAccessInstance.LoadValue(); 

替换原来的呼叫是否有这种模式的名称?我在想'适配器',但看起来比这更具体。

+0

我想的是“适配器”,以及另一个对象。 – 2010-12-15 14:54:09

+0

或者它可能是一个门面? – 2010-12-15 14:55:18

+0

我将其称为面向对象的包装器。无论如何,这个名字是什么? :P – 2010-12-15 15:16:49

回答

3

代理。

它看起来像一个包装 - 代理,适配器或装饰。装饰者不适合,因为你没有增加任何价值;如果你从一个接口映射到另一个接口,则适配器适用;我认为代理是答案,因为您正在使用它来调解对工具箱的访问。

如果您正在从一个非常大的代码库中简化对工具子集的访问权限,那么可能是Facade。

+0

有道理。我想可能会将类'xxxWrapper'命名为实际的特定包装模式 - 似乎是一种很好的折衷方案,并且比'代理'更容易混淆,我认为(即使这是准确的模式名称)。也许有人需要想出一个新的名字! – 2010-12-15 16:07:55

+0

我倾向于使用名称包装很多,因为代理似乎总是带着行李:) – 2010-12-15 16:10:59

3

这是一个代理。

适配器改变类的接口,使其更容易使用与其他clases

的立面是一个单一的接口,以与几个对象更容易的界面交互的创建。它改变了抽象的程度。

装饰器不改变接口,但增加了额外的功能

代理充当代理与相同的接口和相同的高端功能

+0

有一些很好的总结,非常有用 – 2010-12-15 16:05:07

相关问题