Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 04.07.2018, 15:39   #1
Мaкс
Форумчанин
 
Аватар для Мaкс
 
Регистрация: 12.06.2018
Адрес: Научная столица России.
Сообщений: 413
Репутация: -5
Вопрос Какой смысл Интерфейсов если без них программа работает на 100%?

Какой смысл Интерфейсов если без них программа работает на 100%? Если убрать все (2) интерфейса:
Код:

public interface IArOperation
{
    // Определяем набор абстрактных методов
    int Sum();
    int Otr();
    int Prz();
    int Del();
}

public interface ISqrSqrt
{
    int Sqr(int x);
    int Sqrt(int x);
}

И разумеется иерахию Интерфейсов что бы не было ошибки:
Код:

A : IArOperation  ---> A
Ab : A, ISqrSqrt   ---> Ab : A

И тут вопрос: какой смысл использовать интерфейсы?
Мaкс вне форума  
Старый 04.07.2018, 15:43   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,109
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

"работает на 100%" это вообще не о чем.
Во-первых непонятно как измерялись эти %.
Во-вторых какой смысл придумывать имена переменным если и с a, b, c, d, e, ..., z, aa, ab, ... все работает?
Alex11223 на форуме  
Старый 04.07.2018, 15:45   #3
Мaкс
Форумчанин
 
Аватар для Мaкс
 
Регистрация: 12.06.2018
Адрес: Научная столица России.
Сообщений: 413
Репутация: -5
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
какой смысл придумывать имена переменным если и с a, b, c, d, e, ..., z, aa, ab, ... все работает?
???
Мaкс вне форума  
Старый 04.07.2018, 15:56   #4
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,471
Репутация: 2073
По умолчанию

Начнем с одного из типичного применения интерфейсов:
1. Пусть у вас есть логер в файл и функция, которая что-то важное делает и через логер, переданный в параметрах, сообщает о своей работе.
2. Приходит начальник и говорит - хочу, чтобы в некоторых случаях эта функция логировала в БД вместо файла. Напишите вторую функцию?
3. Вылез баг в логировании в БД. Вы написали мок-объект и? Пишите третью функцию для теста?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме  
Старый 04.07.2018, 16:04   #5
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 203
Репутация: 44
По умолчанию

Чтобы задумываться не о природе объекта, а о способе его использования.
Baburek вне форума  
Старый 05.07.2018, 12:26   #6
Мaкс
Форумчанин
 
Аватар для Мaкс
 
Регистрация: 12.06.2018
Адрес: Научная столица России.
Сообщений: 413
Репутация: -5
По умолчанию

Интерфейс нужно использовать с несколькими классами? (Для одного класса не будет смысла использовать)
Мaкс вне форума  
Старый 05.07.2018, 12:31   #7
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,471
Репутация: 2073
По умолчанию

Переведите ваш вопрос, надоело додумывать за вас.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме  
Старый 05.07.2018, 12:39   #8
Мaкс
Форумчанин
 
Аватар для Мaкс
 
Регистрация: 12.06.2018
Адрес: Научная столица России.
Сообщений: 413
Репутация: -5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Переведите ваш вопрос, надоело додумывать за вас.
Вот наши классы и каждый с интерфейсом Interface_:
Код:

class Class1 : Interface_
class Class2 : Interface_
class Class3 : Interface_

В интерфейсе Interface_ там такой код:
Код:

using System;
interface Interface_
{
    void Add(double x);
}

А в классе Class1 там такой код (код неполный):
Код:

public void Add(double x)
{
Balance += x;
}

(Balance это переменная double типа)
И уже не нужно в каждом классе писать выше код (в классе Class1), это компилятор сделает автоматически, так что это:
Код:

public void Add(double x)
{
Balance += x;
}

и это:
Код:

public void Add(double x)
{
Balance += x;
}

не нужно писать, это главное действие интерфейса, правильно?
Мaкс вне форума  
Старый 05.07.2018, 13:07   #9
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,471
Репутация: 2073
По умолчанию

Нет. Ведь другие классы не наследуются от Class1.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме  
Старый 05.07.2018, 13:09   #10
Мaкс
Форумчанин
 
Аватар для Мaкс
 
Регистрация: 12.06.2018
Адрес: Научная столица России.
Сообщений: 413
Репутация: -5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет. Ведь другие классы не наследуются от Class1.
Но наследуются с одним и том же интерфейсом, зачем интерфейс вообще нужен?
Мaкс вне форума  
Закрытая тема

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рассчитать CRC16. с текстовыми и бинарными файлами работает без проблем. Если же подсунуть ей exe файл, то вылетает. ilyakonst Общие вопросы C/C++ 4 12.04.2016 18:01
если Edit1 ='Рис', Edit2 ='10', Edit3 ='6', то автоматически заполняется Edit4 ='100'. Какой оператор лучше использовать? Юрий9 БД в Delphi 7 26.02.2016 19:04
Какой фреймворк изучить для интерфейсов БД Goretsv PHP 4 17.07.2012 03:49
Объясните смысл интерфейсов MyLastHit C# (си шарп) 8 22.11.2011 18:43
Есть ли смысл в использовании предкомпилированных заголовков, если я в них ничего не добавляю? TwiX Visual C++ 4 19.09.2011 14:15


16:11.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru