• 1403/09/13

الگوی Bridge :

سلام. در قسمت 17 در بخش Abstraction کلاس ConcreteImplementor به شکل زیر نمونه سازی شد:

public virtual void Function()
{
   _implementor = new ConcreteImplememtor();
   _implementor.Implementation();
}

اگر قرار باشه اتصال بین انتزاع و پیاده سازی اون قطع بشه، اینجا نقض نشده؟ مثلا اگر یه پیاده سازی جدیدی از انتزاع داشته باشیم، دوباره اون یکی باید پیاده سازسی جدید را  نمونه سازی  و اضافه کنه.

این شکلی نمیشه این رو استفاده کرد؟

public abstract class Abstraction
{
    private Implementor.Implementor _implementor;

    protected Abstraction(Implementor.Implementor implementor)
    {
        _implementor = implementor;
    }

    public virtual void Function()
    {
        _implementor.Implementation();
    }
}

public class  RefinedAbstraction : Abstraction
{

    public RefinedAbstraction(Implementor.Implementor implementor) : base(implementor)
    {

    }

   

}

logo-samandehi