C# 适配器模式

先上代码

在这个例子中,我们定义了 Target 接口和 Adaptee 接口。对于 Adaptee 接口,我们定义了具体的实现类 ConcreteAdaptee 。适配器 Adapter 类实现了 Target 接口,并将 Adaptee 对象作为构造函数的参数传入。在这个适配器类中,我们实现了 Request() 方法,并在其中调用 SpecificRequest() 方法。在测试代码中,我们首先创建了 ConcreteAdaptee 对象,然后使用适配器模式将其转换为 Target 接口,最后调用 Request() 方法,这将先调用适配器的 Request() 方法,然后在其中调用 AdapteeSpecificRequest() 方法。从输出结果可以看到,这个适配器模式成功地将 Adaptee 类的功能转换为了 Target 接口的功能

csharp
// 定义Target接口
interface Target 
{
    void Request();
}
 // 定义适配者Adaptee接口
interface Adaptee 
{
    void SpecificRequest();
}
 // 定义Adaptee的具体实现
class ConcreteAdaptee : Adaptee 
{
    public void SpecificRequest() 
    {
        Console.WriteLine("SpecificRequest called in ConcreteAdaptee");
    }
}
 // 定义适配器Adapter类
class Adapter : Target 
{
    private Adaptee adaptee;
     public Adapter(Adaptee adaptee) 
    {
        this.adaptee = adaptee;
    }
     public void Request() 
    {
        Console.WriteLine("Adapter.Request called");
        adaptee.SpecificRequest();
    }
}
 // 测试代码
class Program 
{
    static void Main(string[] args) 
    {
        Adaptee adaptee = new ConcreteAdaptee();
        Target target = new Adapter(adaptee);
        target.Request();
    }
}

你有没有感觉 似乎就是 需要适配的方法 被一个接口实现的方法调用了

在适配器模式中,适配器类实现了目标接口,并在内部使用适配者对象来调用目标接口中的方法。这样,适配器类就可以将不兼容的适配者类转换为目标接口所需的形式,从而实现两者之间的兼容。

优缺点:

适配器模式的好坏因具体情况而异,下面是适配器模式的一些优缺点:
 优点:
 1. 适配器模式使得原本不兼容的接口之间可以进行协同工作。
2. 适配器模式可以增加代码的复用性,尤其是在需要对现有代码进行重构时。
3. 适配器模式可以对现有系统进行增量开发,无需对原有代码进行大规模的修改。
4. 适配器模式可以使得系统更加灵活,能够支持不同的接口实现和数据格式。
 缺点:
 1. 在适配器模式中增加适配器类会导致系统的代码复杂度增加。(增加代码量)你需要为每一个需要适配的接口都写一个额外的接口
2. 适配器模式可能会影响系统的性能,因为数据的转换和适配需要消耗一定的计算资源。
 总体来说,适配器模式在某些情况下能够为系统带来好处,但在其他情况下可能会给系统带来负面影响。在使用适配器模式时,需要对具体的应用场景进行评估和选择。

posted @ 2023-05-26 09:00  三五八团楚云飞  阅读(17)  评论(0)    收藏  举报