سلام. در قسمت 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)
{
}
}