私はデザイン パターンについて学んでおり、本の最初の例は Abstract Factory に関するものです。VS で演習を作成しましたが、すべて問題ないように見えますが、疑問に思う点が 1 つあります。
この本では、ファクトリ クラスは次のように実装されています。
public abstract class AbstractVehicleFactory
{
public abstract IBody CreateBody();
public abstract IChassis CreateChassis();
public abstract IGlassware CreateGlassware();
}
演習を完了した後、上記のクラスを次のコードに置き換えることができることに気付きました。
public interface IAbstractVehicleFactory
{
IBody CreateBody();
IChassis CreateChassis();
IGlassware CreateGlassware();
}
もちろん、どちらの例もまったく同じように機能しますが、インターフェースではなく抽象クラスを使用する理由は何でしょうか?