Sobes.tech
Junior — Middle

Роли модели дизайн Factory ва дар кадом ҳолатҳо истифода мешавад?

sobes.tech AI

Ҷавоб аз AI

Модели тарҳи Factory (фабрика) барои эҷоди объектҳо бидуни зарурати нишон додани синфи мушаххас истифода мешавад. Он логикаи эҷоди объектҳоро пӯшида нигоҳ медорад, ки ба коди мизоҷ имкон медиҳад бо абстраксияҳо кор кунад, на бо амалишавии мушаххас.

Ҳолатҳои асосии истифода:

  • Вақте ки лозим аст, объектҳоро аз оилае аз синфҳо, ки интерфейси умумиро иҷро мекунанд, эҷод кардан.
  • Вақте ки эҷоди объект мураккаб аст ё логикаи иловагӣ талаб мекунад.
  • Барои содда кардани нигоҳдорӣ ва васеъшавии коди, бо илова кардани намудҳои нави объектҳо бидуни тағир додани коди мизоҷ.

Масалан дар C#:

public interface IShape {
    void Draw();
}

public class Circle : IShape {
    public void Draw() => Console.WriteLine("Drawing Circle");
}

public class Square : IShape {
    public void Draw() => Console.WriteLine("Drawing Square");
}

public class ShapeFactory {
    public IShape GetShape(string shapeType) {
        return shapeType.ToLower() switch {
            "circle" => new Circle(),
            "square" => new Square(),
            _ => null
        };
    }
}

// Истифода
var factory = new ShapeFactory();
IShape shape = factory.GetShape("circle");
shape.Draw();

Инчунин, Factory соддасозии эҷоди объектҳоро таъмин мекунад ва флексибилити архитектураро меафзояд.