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

43
Принципы программирования SOLID

Со временем я смог понять две части SOLID - «S» и «O». «O» - я выучил принцип Open Closed с помощью модели наследования и стратегии. «S» - я изучил принцип единой ответственности при изучении ORM (логика персистентности отбирается у объектов домена). Аналогичным образом, какие области / задачи...

43
Соответствует ли шаблон ActiveRecord / поддерживает принципы проектирования SOLID?

Меня интересует, поощряет или не поощряет ли шаблон ActiveRecord, известный благодаря Ruby on Rails, использование принципов проектирования SOLID . Например, мне кажется, что объекты ActiveRecord содержат как доменную логику, так и логику персистентности, что является нарушением единой...

43
Есть ли причина использовать классы «старых данных»?

В унаследованном коде я иногда вижу классы, которые являются ничем иным, как обертками для данных. что-то типа: class Bottle { int height; int diameter; Cap capType; getters/setters, maybe a constructor } Мое понимание ОО состоит в том, что классы являются структурами для данных и методами работы с...

43
Почему программисты используют `Acme` в качестве имени пакета, пространства имен или каталога [закрыто]

Это может быть или не быть глупым вопросом, но я действительно хотел бы знать ответ на что-то, что беспокоило меня некоторое время. Я довольно часто вижу примеры / соглашения по программированию, где программист создал каталог, в который acmeнужно положить материал. Что Acmeзначит? Почему Acme, а...

43
Полная неизменность и объектно-ориентированное программирование

В большинстве языков ООП объекты обычно изменяемы с ограниченным набором исключений (например, кортежи и строки в Python). В большинстве функциональных языков данные неизменны. Как изменяемые, так и неизменяемые объекты имеют целый ряд собственных преимуществ и недостатков. Существуют языки,...

42
Какова реальная ответственность класса?

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

42
В чем разница между «сценарием использования», «историей пользователя» и «сценарием использования»?

Существует ли точное, но простое и понятное определение различия между «сценарием использования», «пользовательской историей» и «сценарием использования»? есть множество объяснений, но сейчас я не вижу никого, кто бы объяснял различия в одном предложении или двух ... (например,...

42
Является ли «избегать проблемы йо-йо» веской причиной, позволяющей «примитивную одержимость»?

Согласно « Когда примитивная одержимость не является запахом кода»? Я должен создать объект ZipCode для представления почтового индекса вместо объекта String. Однако, по моему опыту, я предпочитаю видеть public class Address{ public String zipCode; } вместо того public class Address{ public ZipCode...

42
Класс, который ничего не представляет - это правильно?

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

41
Нужна ли регистрация при выполнении TDD?

При выполнении цикла Red, Green & Refactor мы всегда должны писать минимальный код для прохождения теста. Именно так меня учили о TDD и как почти все книги описывают этот процесс. Но как насчет регистрации? Честно говоря, я редко использовал регистрацию в приложении, если не было чего-то...

40
Должен ли я создать класс, если моя функция сложна и имеет много переменных?

Этот вопрос несколько не зависит от языка, но не полностью, поскольку объектно-ориентированное программирование (ООП) отличается, например, в Java , которая не имеет функций первого класса, чем в Python . Другими словами, я чувствую себя менее виноватым за создание ненужных классов в таком языке,...

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

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

40
Передача функций в другие функции в качестве параметров, плохая практика?

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

39
Документация в ООП должна избегать указания, выполняет ли «получатель» какие-либо вычисления?

Программа CS моей школы избегает каких-либо упоминаний об объектно-ориентированном программировании, поэтому я немного читал сам, чтобы дополнить его - в частности, конструкцию объектно-ориентированного программного обеспечения Бертрана Мейера. Мейер неоднократно подчеркивал, что классы должны...

39
Обозначения диаграмм классов UML: различия между ассоциацией, агрегацией и композицией

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

38
Почему плохая связь между функциями и данными плоха?

Я нашел эту цитату в « Радости Clojure » на с. 32, но кто-то сказал мне то же самое за ужином на прошлой неделе, и я слышал это и в других местах: Недостатком объектно-ориентированного программирования является тесная связь между функцией и данными. Я понимаю, почему ненужное соединение плохо в...

38
Как я могу оценить мой прогресс как соло-младшего разработчика [закрыто]

В настоящее время я работаю в компании из 2 человек, в качестве основного разработчика соло. Мой начальник получает клиентов, макетирует некоторые шаблоны png-дизайна и передает их мне. Эта система работала нормально, и я действительно наслаждаюсь этим. Типы проектов, над которыми я работаю,...

38
Как думать, как программист C после того, как смещен с языка ООП? [закрыто]

Раньше я использовал только языки объектно-ориентированного программирования (C ++, Ruby, Python, PHP) и сейчас изучаю C. Мне трудно найти правильный способ сделать что-то на языке без понятия «Объект». Я понимаю, что можно использовать ООП-парадигмы в C, но я бы хотел изучить C-идиоматический...

38
Pass ID или объект?

При предоставлении метода бизнес-логики для получения объекта домена должен ли параметр принимать объект или идентификатор? Например, мы должны сделать это: public Foo GetItem(int id) {} или это: public Foo GetItem(Foo foo) {} Я верю в передачу объектов вокруг, в целом, но как насчет того случая,...

38
Сохранение объекта с помощью собственного метода или другого класса?

Если я хочу сохранить и извлечь объект, должен ли я создать другой класс для его обработки или лучше сделать это в самом классе? Или, может быть, смешивая оба? Что рекомендуется в соответствии с парадигмой ООД? Например Class Student { public string Name {set; get;} .... public bool Save() {...