Вопросы с тегом «object-oriented»

Методология, которая позволяет моделировать систему как набор объектов, которыми можно управлять и манипулировать модульным способом

3
Существуют ли ОО-языки без наследования?
Во время сегодняшнего обзора кода мой коллега сказал что-то интересное: prototypeполезно только тогда, когда вам нужно наследование - и когда наследование когда-либо является хорошей идеей ? Я подумал об этом и понял, что обычно использую наследование, чтобы обойти код, который изначально был плохо спроектирован. Современный ОО-стиль предпочитает композицию, а не …

7
Шаблоны для распространения изменений в объектной модели ..?
Вот общий сценарий, с которым мне всегда приходится сталкиваться. У меня есть объектная модель с родительским объектом. Родитель содержит несколько дочерних объектов. Что-то вроде этого. public class Zoo { public List<Animal> Animals { get; set; } public bool IsDirty { get; set; } } Каждый дочерний объект имеет различные данные …

9
Принципы ООП и названия методов
class Boxer: def punch(self, punching_bag, strength): punching_bag.punch(strength) class PunchingBag: def punch(self, strength): print "Punching bag punched with strength", strength boxer = Boxer() punching_bag = PunchingBag() boxer.punch(punching_bag, 2) Без сомнения, punchэто хорошее имя метода в случае боксера. Но punchхорошо ли название для метода пробивая? В обоих случаях я имею в виду …

6
Должен ли объект знать свой собственный идентификатор?
obj.idкажется довольно распространенным, а также, кажется, попадает в диапазон того, что объект может знать о себе. Я спрашиваю себя, почему мой объект должен знать свой собственный идентификатор? Кажется, у него нет причин иметь это? Одна из основных причин его существования - это его извлечение, поэтому мои репозитории должны знать об …

1
Что они называли объектно-ориентированным программированием до того, как Алан Кей изобрел этот термин?
Алан Кей утверждает, что «я придумал термин« объектно-ориентированный », и я могу сказать, что я не имел в виду C ++». Разумеется, он имел в виду Smalltalk. Но он не придумал само объектно-ориентированное программирование; он получил основные идеи от Симулы. Так что, если этот термин еще не был изобретен, как …

6
Является ли слабое соединение без вариантов использования анти-паттерном?
Слабое связывание для некоторых разработчиков является святым Граалем хорошо спроектированного программного обеспечения. Это, конечно, хорошо, когда он делает код более гибким перед лицом изменений, которые могут произойти в обозримом будущем, или избегает дублирования кода. С другой стороны, усилия по слабому объединению компонентов увеличивают степень косвенности в программе, увеличивая ее сложность, …

3
Как обрабатывать ошибки в конструкторе класса C ++?
У меня есть класс CPP, конструктор которого выполняет некоторые операции. Некоторые из этих операций могут потерпеть неудачу. Я знаю, что конструкторы ничего не возвращают. Мои вопросы Разрешено ли выполнять некоторые операции, кроме инициализации членов в конструкторе? Можно ли сказать вызывающей функции, что некоторые операции в конструкторе потерпели неудачу? Могу ли …

4
«Слишком объектно-ориентированный»
Я являюсь экспертом в области ОО и недавно начал работать в организации, которая, хотя код написан на Java, уделяет гораздо меньше внимания хорошему ОО-дизайну, чем я привык. Мне сказали, что я ввожу «слишком много абстракции», и вместо этого я должен кодировать так, как это всегда делалось, что является процедурным стилем …

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

5
Использование статических классов в качестве пространств имен
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 8 лет назад . Я видел других разработчиков, использующих статические классы как пространства имен public static class CategoryA { public class Item1 { public void DoSomething() { } } public class …

12
Является ли разработка игр лучшим способом изучения программирования? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 4 года назад . Недавно я слышал от преподавателя, что разработка игр - лучший способ научиться программированию. Помимо того факта, что …

4
Как радикально улучшить покрытие кода?
Мне поручено получить устаревшее приложение под модульным тестом. Сначала немного информации о приложении: это 600-килобайтная кодовая база Java RCP с этими серьезными проблемами. массовое дублирование кода нет инкапсуляции, большая часть личных данных доступна извне, некоторые бизнес-данные также являются одиночными, поэтому их можно изменять не только извне, но и повсюду. нет …

5
Не нарушают ли частные случаи с запасными вариантами принцип подстановки Лискова?
Допустим, у меня есть интерфейс, FooInterfaceкоторый имеет следующую подпись: interface FooInterface { public function doSomething(SomethingInterface something); } И конкретный класс, ConcreteFooкоторый реализует этот интерфейс: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Я хотел бы ConcreteFoo::doSomething()сделать что-то уникальное, если ему передан специальный тип SomethingInterfaceобъекта (скажем, он …

3
Дженерикс против общего интерфейса?
Я не помню, когда я писал общий класс в прошлый раз. Каждый раз, когда я думаю, что мне это нужно, после некоторого размышления я делаю вывод, что нет. Второй ответ на этот вопрос заставил меня попросить разъяснений (поскольку я пока не могу комментировать, я сделал новый вопрос). Итак, давайте возьмем …

5
Каковы преимущества внедрения зависимостей в тех случаях, когда почти всем нужен доступ к общей структуре данных?
Есть много причин, почему глобалы злы в ООП. Если число или размер объектов, нуждающихся в совместном использовании, слишком велик, чтобы их можно было эффективно передать в параметрах функции, обычно все рекомендуют внедрение зависимостей вместо глобального объекта. Однако в случае, когда почти каждый должен знать об определенной структуре данных, почему внедрение …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.