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

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

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

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

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

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

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

9
При написании объектно-ориентированного кода я должен всегда следовать шаблону проектирования?
Есть ли мыслимый шаблон проектирования для какой-либо объектно-ориентированной программы? Я спрашиваю об этом, потому что недавно я увидел реализацию Doorкласса с Lock. Это было частью теста, и в ответ было сказано, что код соответствует шаблону Null Object: class Lock { public: virtual void close() = 0; virtual void open() = …

11
Подклассы только для конструктора: это анти-шаблон?
У меня была беседа с коллегой, и в итоге у нас возникли противоречивые представления о цели создания подклассов. Моя интуиция заключается в том, что если основная функция подкласса должна выражать ограниченный диапазон возможных значений его родителя, то, вероятно, это не должен быть подкласс. Он высказался за противоположную интуицию: то, что …

11
Являются ли абстрактные классы / методы устаревшими?
Я использовал для создания много абстрактных классов / методов. Затем я начал использовать интерфейсы. Теперь я не уверен, что интерфейсы не делают абстрактные классы устаревшими. Вам нужен полностью абстрактный класс? Вместо этого создайте интерфейс. Вам нужен абстрактный класс с некоторой реализацией в нем? Создайте интерфейс, создайте класс. Наследуй класс, реализуй …

17
Как я могу чувствовать себя более уверенно в своих навыках программирования? [закрыто]
Программирование мне не чуждо. Сначала я начал делать разметку (HTML, теперь, пожалуйста, не смейтесь надо мной), когда мне было 12 лет, и немного Бейсика, когда мне было 13 лет (я много знал о блок-схемах, псевдокодах на данный момент), но затем меня предупредили Биология в старшей школе и, следовательно, упущена на …

2
Почему методы, которые принимают неограниченное количество параметров, часто определяют перегрузки с меньшим количеством параметров?
Например, System.IO.Path.Combineметод в .NET имеет следующие перегрузки: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) Какой смысл последних трех? Первый будет охватывать их все, как будто вы смотрите внимательно, он использует paramsключевое слово. Аргумент обратной совместимости будет охватывать только Combine(String, String)вариант, так как это была единственная версия …

5
Как определить, что метод может быть переопределен более сильным обязательством, чем определение, что метод может быть вызван?
От: http://www.artima.com/lejava/articles/designprinciples4.html Эрих Гамма: Я все еще думаю, что это правда, даже после десяти лет. Наследование - это крутой способ изменить поведение. Но мы знаем, что это хрупко, потому что подкласс может легко делать предположения о контексте, в котором вызывается метод, который он переопределяет. Между базовым классом и подклассом существует …

8
Должны ли возможности объекта идентифицироваться исключительно интерфейсами, которые он реализует?
isОператор C # и Javainstanceof позволяют вам ветвиться на интерфейсе (или, что еще более неуклюже, на его базовом классе), реализованном экземпляром объекта. Уместно ли использовать эту функцию для ветвления высокого уровня на основе возможностей, предоставляемых интерфейсом? Или базовый класс должен предоставлять логические переменные, чтобы обеспечить интерфейс для описания возможностей, которые …

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

5
Когда мне следует расширить класс Java Swing?
Мое текущее понимание реализации Наследования состоит в том, что следует расширять класс только при наличии отношения IS-A . Если родительский класс может дополнительно иметь более конкретные дочерние типы с различной функциональностью, но будет совместно использовать общие элементы, абстрагированные в родительском. Я подвергаю сомнению это понимание из-за того, что мой профессор …

5
Это хорошая практика для создания ClassCollection другого класса?
Допустим, у меня есть Carкласс: public class Car { public string Engine { get; set; } public string Seat { get; set; } public string Tires { get; set; } } Допустим, мы создаем систему для парковки, я собираюсь использовать много Carклассов, поэтому мы создаем CarCollectionкласс, который может иметь несколько …

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