我有一个类,并且调用另一个类。像:
class Caller
{
public void LetsCall()
{
abstractA a = new ConcreteA();
a.DoSomething();
}
}
public abstract class abstractA
{
public virtual void DoSomething()
{
}
}
class ConcreteA : abstractA
{
public override void DoSomething()
{
base.DoSomething();
Functions.Doit();
}
}
class Functions
{
public static void Doit()
{
//Some more work
}
}
喜欢了解" ConcreteA" class是一个适配器,Function类是一个适配器吗?
任何人都可以解释适配器的特性。除了在适配器中调用方法的方法之外,还可以使用其他方法 谢谢,
答案 0 :(得分:0)
这看起来像多态和组合。适配器的概念是一个“包装器”,它分派给一些底层对象。拥有适配器的目的是允许现有代码符合特定接口。
我总是看到一个例子,就是说我有一个我写的形状库,我有以下界面。
public interface Shape {
double getArea();
}
现在我在另一个库中找到了一些很酷的Circle实现,我想在我的系统中使用它,但是没有getArea()方法。这是:
public class SomeonesCircle {
public double getRadius() { return radius; }
}
因此,对于我来说,在我的系统中将其设为“形状”,我可以引入一个适配器:
public class CircleAdapter implements Shape {
private final SomeonesCircle theCircle;
public CircleAdapter (SomeonesCircle theCircle) { this.theCircle = theCircle; }
public double getArea() {
return theCircle.getRadius() * theCircle.getRadius() * Math.PI;
}
}
// Somewhere else I can now do
Shape shape = new CircleAdapter(new SomeonesCircle(radius));
所以现在我可以将现有代码用作Shape - 也就是说,我对它进行了调整。我在你的示例代码中没有看到同样的想法。也许,如果你使用实际的具体想法,它会更清楚。