• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wzorzec projektowy Prototyp

VPS Starter Arubacloud
0 głosów
278 wizyt
pytanie zadane 22 stycznia 2017 w C# przez timrh Mądrala (6,010 p.)

Witam, napisałem własną implementację wzorca projektowego: prototyp. Chciałbym się dowiedzieć czy jest ona poprawna.

public enum Handle
{
    Wooden,
    Iron,
    Steel,
    Glass,
    Gold
}

public enum Edge
{
    Iron,
    Steel,
    Glass,
    Gold
}

public enum WeaponType
{
    Sword,
    Mace,
    Axe
}

public class WeaponCreator
{
    private int        cost;
    private Handle     handle;
    private Edge       edge;
    private WeaponType weaponType;

    public WeaponCreator(int cost, Handle handle, Edge edge, WeaponType weaponType)
    {
        this.cost = cost;
        this.handle = handle;
        this.edge = edge;
        this.weaponType = weaponType;
    }

    public Weapon CreateWeapon() => new Weapon(cost, handle, edge, weaponType);
}

public interface ICloneable
{
    object Clone();
}

public class Weapon : ICloneable
{
    public int cost              { get; }
    public Handle handle         { get; }
    public Edge edge             { get; }
    public WeaponType weaponType { get; }

    public Weapon(int cost, Handle handle, Edge edge, WeaponType weaponType)
    {
        this.cost       = cost;
        this.handle     = handle;
        this.edge       = edge;
        this.weaponType = weaponType;
    }

    public object Clone() => MemberwiseClone();
    public override string ToString() => $"Cost: {cost}, Type: {weaponType}, Handle: {handle}, Edge: {edge}";
}

static class Prototyp
{
    public static void Test()
    {
        WeaponCreator weaponCreator = new WeaponCreator(9000, Handle.Glass, Edge.Gold, WeaponType.Sword);
        var clone = weaponCreator.CreateWeapon().Clone();

        Console.WriteLine(clone.ToString());
    }
}

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
4 odpowiedzi 886 wizyt
pytanie zadane 29 października 2017 w Algorytmy przez TeslaX93 Gaduła (3,600 p.)
0 głosów
3 odpowiedzi 2,924 wizyt
pytanie zadane 29 maja 2017 w PHP przez Turqus Obywatel (1,420 p.)
+1 głos
2 odpowiedzi 506 wizyt
pytanie zadane 26 października 2019 w C i C++ przez AuriattaDev Początkujący (390 p.)

93,008 zapytań

141,975 odpowiedzi

321,256 komentarzy

62,350 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...