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

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

16
Нужны ли нам ОО-языки для управления сложностью программного обеспечения?
Это будет очень нетехнический, мягкий вопрос, и я не уверен, что это правильная платформа. Но я начинающий студент CS, поэтому надеюсь, что вы, ребята, это терпите. В первом семестре мы познакомились с такими понятиями ООП, как инкапсуляция, сокрытие данных, модульность, наследование и т. Д. Через Java и UML. (Java - …

15
Неправильно ли использовать логический параметр для определения поведения?
Время от времени я видел практику, которая «чувствует» неправильную, но я не могу четко сформулировать, что в ней плохого. Или, может быть, это просто мое предубеждение. Поехали: Разработчик определяет метод с логическим значением в качестве одного из его параметров, и этот метод вызывает другой, и так далее, и в конечном …

14
Банда Четырех тщательно исследовала «Пространство Образца»?
С тех пор, как я впервые узнал о шаблонах проектирования Gang of Four (GoF) , по крайней мере 10 лет назад, у меня сложилось впечатление, что эти 23 шаблона должны быть лишь небольшим образцом чего-то гораздо большего, что мне нравится называть Пространством шаблонов . Это гипотетическое пространство шаблонов состоит из …

17
Лучше ли возвращать NULL или пустые значения из функций / методов, где возвращаемое значение отсутствует?
Я ищу рекомендацию здесь. Я борюсь с тем, лучше ли возвращать NULL или пустое значение из метода, когда возвращаемое значение отсутствует или не может быть определено. Возьмите следующие два метода в качестве примера: string ReverseString(string stringToReverse) // takes a string and reverses it. Person FindPerson(int personID) // finds a Person …

10
Это нарушение принципа подстановки Лискова?
Скажем, у нас есть список сущностей задач и ProjectTaskподтип. Задачи могут быть закрыты в любое время, кроме тех, ProjectTasksкоторые не могут быть закрыты, если они имеют статус Запущено. Пользовательский интерфейс должен гарантировать, что опция закрытия запуска ProjectTaskникогда не будет доступна, но в домене присутствуют некоторые меры безопасности: public class Task …

6
Что на самом деле является «бизнес-логикой»?
Я занимаюсь веб-разработкой с 2009 года, когда начал работать с PHP. Когда я перешел на ASP.NET, я много слышал о DDD и OOAD, где большое внимание уделяется этой «бизнес-логике» и «бизнес-правилам». Дело в том, что все приложения, которые я разрабатывал до сих пор, были посвящены операциям CRUD, и я никогда …

13
Как вы оправдываете написание большего количества кода, следуя правилам чистого кода?
Заметка модератора На этот вопрос уже отправлено 17 ответов . Прежде чем опубликовать новый ответ, пожалуйста, прочитайте существующие ответы и убедитесь, что ваша точка зрения еще не покрыта должным образом. Я следовал некоторым рекомендациям, рекомендованным в книге «Чистый код» Роберта Мартина, особенно тем, которые относятся к типу программного обеспечения, с …

12
Почему квадратное наследование от Rectangle будет проблематичным, если мы переопределим методы SetWidth и SetHeight?
Если Квадрат является типом Прямоугольника, то почему Квадрат не может наследовать от Прямоугольника? Или почему это плохой дизайн? Я слышал, как люди говорят: Если вы сделали Square производным от Rectangle, то Square должен использоваться везде, где вы ожидаете прямоугольник В чем здесь проблема? И почему Square можно использовать везде, где …

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

4
Богатые доменные модели - как именно вписывается поведение?
В дебатах моделей предметной области Rich против Anemic Интернет полон философских советов, но не хватает авторитетных примеров. Цель этого вопроса - найти четкие рекомендации и конкретные примеры правильных моделей проектирования на основе доменов. (В идеале в C #.) Для реального примера эта реализация DDD кажется неправильной: Приведенные ниже модели доменов …

11
Почему базовые для всех объектов не рекомендуется в C ++
Страуструп говорит: «Не изобретайте сразу уникальную базу для всех ваших классов (класс Object). Как правило, вы можете сделать это лучше для многих / большинства классов». (Язык программирования C ++, четвертое издание, раздел 1.3.4) Почему базовый класс для всех вообще плохая идея, и когда имеет смысл создавать ее?

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

12
Наличие флага, указывающего, должны ли мы выдавать ошибки
Я недавно начал работать в месте с некоторыми намного более старшими разработчиками (приблизительно 50 лет). Они работали над критическими приложениями, касающимися авиации, где система не могла выйти из строя. В результате старший программист имеет тенденцию кодировать этот путь. Он имеет тенденцию помещать логическое значение в объекты, чтобы указать, должно ли …

10
Что означает «пользователь не должен решать, является ли он администратором или нет. Привилегии или Система безопасности должны ».
В примере, использованном в этом вопросе, передается минимальное количество данных для функции, которая помогает определить, является ли пользователь администратором или нет. Один общий ответ был: user.isAdmin() Это побудило комментарий, который был повторен несколько раз и проголосовал много раз: Пользователь не должен решать, является ли он администратором или нет. Привилегии или …

9
Являются ли классы только с одним (публичным) методом проблемой?
В настоящее время я работаю над программным проектом, который выполняет сжатие и индексацию видеозаписей видеонаблюдения. Сжатие выполняется путем разделения объектов фона и переднего плана, а затем сохранения фона в виде статического изображения и переднего плана в виде спрайта. Недавно я приступил к рассмотрению некоторых классов, которые я разработал для этого …

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