Jump to content
Sign in to follow this  
Ropedann

Interface в программировании

Recommended Posts

Думаю многие знают что в программировании существует такая штука как  [ interface ]

Не могу ни как понять зачем и для чего они нужны. Везде описано все как то в общих чертах. Пишут и рассказывают как ими пользоваться, но зачем ни кто адекватно объяснить не может.

Ниже привожу пример использования интерфейса. Но по сути все бы работало и без него.

 internal interface IAnimal
    {
        void animalSound();
    }

 class Pig :IAnimal
    {
        public void animalSound()
        {
            Console.WriteLine("wee wee wee...");
        }
    }

Pig pig = new Pig();
pig.animalSound();

Хотелось бы вызвать пояснительную бригаду.

Share this post


Link to post
Share on other sites

@Ropedann в твоём примере можно спокойной обойтись без интерфейса.

 

Интерфейсы - это как спецификация, которая определяет какие методы должен содержать класс, если он хочет следовать этому интерфейсу. Они позволяют разработчикам создавать код, который может быть использован вместе с другими классами, не зная их реальной реализации. Это повышает гибкость и повторную используемость кода.

 

IAnimal - это интерфейс, который определяет метод animalSound().

 

Pig - это класс, который реализует интерфейс IAnimal и переопределяет метод animalSound().

Edited by BXlevovich

Share this post


Link to post
Share on other sites
В 05.02.2023 в 10:33, BXlevovich сказал:

@Ropedann в твоём примере можно спокойной обойтись без интерфейса.

 

Интерфейсы - это как спецификация, которая определяет какие методы должен содержать класс, если он хочет следовать этому интерфейсу. Они позволяют разработчикам создавать код, который может быть использован вместе с другими классами, не зная их реальной реализации. Это повышает гибкость и повторную используемость кода.

 

IAnimal - это интерфейс, который определяет метод animalSound().

 

Pig - это класс, который реализует интерфейс IAnimal и переопределяет метод animalSound().

Спасибо за ответ.

 

Share this post


Link to post
Share on other sites

Привет, @Ropedann!

 

Интерфейсы нужны чтобы программировать на уровне абстракций, а не на уровне конкретной реализации. Иными словами, ты можешь, например, написать код, который будет скачивать файлы для обновления игрового клиента, с FTP, через HTTP или с Git. То есть один и тот же код будет работать с разными протоколами обмена файлами, плюс тебе будет проще в будущем добавлять новые протоколы. Если хочешь больше разобраться в этой теме, то посмотри в сторону шаблонов проектирования (Design Patterns), там очень широко используется понятие интерфейса.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...