Reklama
Pokazuje wyniki od 1 do 4 z 4

Temat: C# sens interface

  1. #1
    Mickey Mouse

    Domyślny C# sens interface

    Cześć, znów ja ;/ ostatnio bawię się z interface i nie mogę zrozumieć sensu jego stosowania, tj. niby wiem jak działa ale nie wiem czy zmierzam w dobrym kierunku jeżeli chodzi o jego właściwe wykorzystanie.
    Czy opłaca się go stosować dla samej przejrzystości czy np w przykładzie poniżej lepiej z niego nie korzystać i po prostu dać klasom podrzędnym klasie Creature voidy? to tak na szybko napisałem tylko dla pokazania mojego dylematu :D

    mam taki prosty interfejs:

    Kod:
        interface Functions
        {
            void getStatistics();
        }
    i takie klasy:

    Kod:
    class Creature
        {
            int health;
            int outfitID;
            int speed;
    
            public Creature()
            {
                health = 100;
                outfitID = 1;
                speed = 10;
            }
    
            public int Health
            {
                get
                {
                    return health;
                }
                set
                {
                    if(health != value)
                    {
                        health = value;
                    }
                }
            }
    
            public int OutfitID
            {
                get
                {
                    return outfitID;
                }
                set
                {
                    if(outfitID != value)
                    {
                        outfitID = value;
                    }
                }
            }
    
            public int Speed
            {
                get
                {
                    return speed;
                }
                set
                {
                    if(speed != value)
                    {
                        speed = value;
                    }
                }
            }
        }
    
        class Player : Creature, Functions
        {
            int mana;
            int level;
    
            public Player()
            {
                mana = 100;
                level = 1;
            }
            
            public int Mana
            {
                get
                {
                    return mana;
                }
                set
                {
                    if(mana != value)
                    {
                        mana = value;
                    }
                }
            }
    
            public int Level
            {
                get
                {
                    return level;
                }
                set
                {
                    if(level != value)
                    {
                        level = value;
                    }
                }
            }
    
    
            public void getStatistics()
            {
                Console.WriteLine("Type: Player");
                Console.WriteLine("Health: " + Health);
                Console.WriteLine("OutfitID: " + OutfitID);
                Console.WriteLine("Speed: " + Speed);
                Console.WriteLine("Mana: " + Mana);
                Console.WriteLine("Level: " + Level);
            }
        }
    
        class Monster : Creature, Functions
        {
            int spellPower;
            int attackspeed;
            
            public Monster()
            {
                spellPower = 1;
                attackspeed = 100;
            }
    
            public int SpellPower
            {
                get
                {
                    return spellPower;
                }
                set
                {
                    if(spellPower != value)
                    {
                        spellPower = value;
                    }
                }
            }
    
            public int Attackspeed
            {
                get
                {
                    return attackspeed;
                }
                set
                {
                    if(attackspeed != value)
                    {
                        attackspeed = value;
                    }
                }
            }
    
    
            public void getStatistics()
            {
                Console.WriteLine("Type: Monster");
                Console.WriteLine("Health: " + Health);
                Console.WriteLine("OutfitID: " + OutfitID);
                Console.WriteLine("Speed: " + Speed);
                Console.WriteLine("SpellPower: " + SpellPower);
                Console.WriteLine("AttackSpeed: " + Attackspeed);
            }
        }
    ew jezeli nie rozumiem to może mi ktoś rozjaśni do czego przydają się interfejsy i kiedy są wręcz wymagane, z góry dzięki.

  2. #2

    Data rejestracji
    2015
    Posty
    22
    Siła reputacji
    0

    Domyślny

    Poczytaj o ioc np. Jest to bardzo przydatne bo możesz implementowac interfejs na różne sposoby i zmieniać tylko instancje co daje Ci większa elastyczność kodu

  3. Reklama
  4. #3
    Mickey Mouse

    Domyślny

    ok poczytam dziś, oglądam teraz coś lżejszego bo nocka =/
    https://www.youtube.com/watch?v=CKONKZLmMwk

  5. #4
    Avatar Kusterek
    Data rejestracji
    2013
    Położenie
    Warszawa
    Wiek
    31
    Posty
    1,710
    Siła reputacji
    13

    Domyślny

    Tak, IOC i DI zdecydowanie przybliża sens interfejsów, sam dlugo nie potrafiłem skminic po co one są.

    Jednak teraz wiem, ze mając interfejs w parametrach jakiejś metody, mogę użyć jako argumentu obiektu kazdej klasy ktora dziedziczy ten interfejs bo mam zagwarantowane, ze wybrany obiekt posiada metodę interfejsu ktora chce użyć

    Może to chujowo napisałem bo jadę autobusem ale ja przy takim czymś używam interfejsow

    irc: freenode.net in #torgdevs

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Tibia na laptopie - interface
    Przez bubelssj2 w dziale Tibia
    Odpowiedzi: 1
    Ostatni post: 30-04-2015, 13:50
  2. Czy jest sens?
    Przez Razov w dziale Open Tibia Server
    Odpowiedzi: 10
    Ostatni post: 30-09-2009, 21:09
  3. Zagadki Tibii - czy jest sens?
    Przez Trias w dziale Tibia
    Odpowiedzi: 34
    Ostatni post: 02-02-2008, 22:30

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •