Вопросы с тегом «class»

Шаблон для объявления типа объекта.

174
Когда вы используете структуру вместо класса? [закрыто]

Каковы ваши практические правила, когда использовать структуры против классов? Я думаю об определении этих терминов в C #, но если ваш язык имеет схожие понятия, я бы тоже хотел услышать ваше мнение. Я склонен использовать классы практически для всего и использовать структуры только тогда, когда...

109
Не использовать «статический» в C #?

Я отправил заявку, которую написал другим архитекторам, для проверки кода. Один из них почти сразу же ответил мне и сказал: «Не используйте« статические ». Вы не можете писать автоматические тесты со статическими классами и методами.« Статических »следует избегать». Я проверил и полностью четверть...

82
Должны ли объекты в ООП представлять сущность?

Должен ли объект представлять сущность? Под организацией я имею в виду нечто вроде Product, Motor, А и ParkingLotт.д., физическая, или даже четкий нефизических концептуального объекта - то , что хорошо определен, с некоторыми основными данными явно принадлежащими к объекту, а также некоторые...

70
Когда использовать абстрактные классы вместо интерфейсов с методами расширения в C #?

«Абстрактный класс» и «интерфейс» являются похожими понятиями, причем интерфейс является более абстрактным из двух. Одним из отличительных факторов является то, что абстрактные классы предоставляют реализации методов для производных классов, когда это необходимо. Однако в C # этот дифференцирующий...

68
Почему есть частные статические методы?

Я просто хотел прояснить вопрос, который у меня есть. Какой смысл иметь приватный статический метод в отличие от обычного метода с приватной видимостью? Я бы подумал, что преимущество статического метода состоит в том, что он может быть вызван без экземпляра класса, но, поскольку его закрытый...

62
Почему хорошо разбить программу на несколько классов? [закрыто]

Я все еще учусь в средней школе (поступаю в 10-й класс), и мне еще предстоит пройти настоящий курс компьютерного обучения в школе. Все, что я до сих пор делал, это через книги. Эти книги научили меня таким понятиям, как наследование, но как помогает разделение программы на несколько классов? Книги...

56
Как мне доказать или опровергнуть, что «объекты Бога» не правы?

Краткое описание проблемы: Короче говоря, я унаследовал кодовую базу и команду разработчиков, которую мне не разрешено заменять, и использование God Objects является большой проблемой. В дальнейшем я хочу, чтобы мы перефакторили вещи, но я получаю отпор от команд, которые хотят делать все с...

54
Когда использовать примитив против класса в Java?

Я вижу, что Java имеет логическое (класс) против логического (примитив). Аналогично, есть Integer (класс) против int (примитив). Как лучше всего использовать примитивную версию против класса? Должен ли я в основном всегда использовать версию класса, если у меня нет конкретной причины...

47
Где я должен поместить функции, которые не связаны с классом?

Я работаю над проектом C ++, где у меня есть куча математических функций, которые я изначально написал для использования в качестве части класса. Однако, когда я писал больше кода, я понял, что мне нужны эти математические функции везде. Где лучшее место для их размещения? Допустим, у меня есть...

47
Почему и когда я должен сделать класс «статическим»? Каково назначение ключевого слова static на классах?

staticКлючевое слово в качестве члена во многих языках означает , что вы не должны создать экземпляр этого класса , чтобы иметь возможность иметь доступ к этому члену. Тем не менее, я не вижу никакого оправдания, чтобы сделать весь класс static. Почему и когда я должен сделать урок static? Какие...

40
Почему я должен объявлять класс как абстрактный класс?

Я знаю синтаксис, правила, применяемые к абстрактному классу, и я хочу знать использование абстрактного класса Абстрактный класс не может быть создан напрямую, но может быть расширен другим классом В чем преимущество этого? Чем он отличается от интерфейса? Я знаю, что один класс может реализовывать...

38
В C ++ почему и как виртуальные функции работают медленнее?

Может кто-нибудь подробно объяснить, как именно работает виртуальная таблица и какие указатели связаны при вызове виртуальных функций. Если они на самом деле медленнее, можете ли вы показать, что время выполнения виртуальной функции превышает обычные методы класса? Легко потерять отслеживание того,...

37
Почему предпочитают нестатические внутренние классы статическим?

Вопрос в том, сделать ли вложенный класс в Java статическим вложенным классом или внутренним вложенным классом. Я искал здесь и на Stack Overflow, но не смог найти никаких вопросов, касающихся последствий этого решения для дизайна. Я нашел вопросы о разнице между статическими и внутренними...

27
Реализация чистых абстрактных классов и интерфейсов

Хотя это не является обязательным в стандарте C ++, похоже, что GCC, например, реализует родительские классы, в том числе чисто абстрактные, путем включения указателя на v-таблицу для этого абстрактного класса в каждом экземпляре рассматриваемого класса. , Естественно, это увеличивает размер...

26
Как избежать «менеджеров» в моем коде

Этот вопрос перенесен из Exchange Stack Exchange, так как на него можно ответить в Software Stack Exchange. Мигрировал 6 лет назад . В настоящее время я перепроектирую свою Entity System для C ++, и у меня много менеджеров. В моем дизайне у меня есть эти классы, чтобы связать мою библиотеку. Я...

25
Предложить лучшие практики для создания класса Constants

Этот вопрос перенесен из Exchange Stack Exchange, так как на него можно ответить в Software Stack Exchange. Мигрировал 5 лет назад . Между членами моей команды ведутся дебаты по поводу объявления класса Constants. Мы перемещаем постоянные переменные в отдельный класс, как показано ниже. public...

23
Как чисто функциональные языки обрабатывают модульность?

Я пришел из объектно-ориентированного фона, где я узнал, что классы используются или, по крайней мере, могут использоваться для создания уровня абстракции, который позволяет легко перерабатывать код, который затем может быть использован для создания объектов или для наследования. Как, например, я...

22
Почему Java не позволяет определениям функций присутствовать вне класса?

В отличие от C ++, в Java у нас не может быть просто объявлений функций в классе и определений вне класса. Почему это так? Следует ли подчеркнуть, что один файл в Java должен содержать только один класс и ничего...

21
Используйте абстрактный класс в C # как определение

Как разработчик C ++ я довольно привык к заголовочным файлам C ++ и считаю полезным иметь какую-то принудительную «документацию» внутри кода. У меня обычно бывает плохое время, когда мне приходится читать код C # из-за этого: у меня нет такой ментальной карты класса, с которой я работаю. Давайте...