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

37
При написании объектно-ориентированного кода я должен всегда следовать шаблону проектирования?

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

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

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

37
Подклассы только для конструктора: это анти-шаблон?

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

37
Являются ли абстрактные классы / методы устаревшими?

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

36
Должны ли возможности объекта идентифицироваться исключительно интерфейсами, которые он реализует?

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

36
Почему методы, которые принимают неограниченное количество параметров, часто определяют перегрузки с меньшим количеством параметров?

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

36
Как определить, что метод может быть переопределен более сильным обязательством, чем определение, что метод может быть вызван?

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

35
Преимущества объектно-ориентированного программирования [закрыто]

Примечание : этот вопрос является отредактированной выдержкой из блога, который я написал несколько месяцев назад. После размещения ссылки на блог в комментарии к Programmers.SE кто-то попросил меня разместить здесь вопрос, чтобы они могли на него ответить. Это сообщение мой самый популярный, так...

35
что такое передача сообщений в ОО?

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

35
Это хорошая практика для создания ClassCollection другого класса?

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

35
Когда мне следует расширить класс Java Swing?

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

35
Когда мы на самом деле используем объектно-ориентированное программирование? [закрыто]

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

35
Повлиял ли постепенный сдвиг в методологии написания кода на производительность системы? И мне все равно?

TD; DR: Был некоторый беспорядок относительно того, что я спрашивал, таким образом, вот движущая идея позади вопроса: Я всегда хотел, чтобы вопрос был таким, какой он есть. Я, возможно, не сформулировал это хорошо изначально. Но намерение всегда было « модульным, разделенным, слабо связанным,...

34
Как улучшить шаблон Bloch's Builder Pattern, чтобы сделать его более подходящим для использования в расширяемых классах

На меня сильно повлияла книга Джошуа Блоха «Эффективная Java» (2-е издание), вероятно, больше, чем с любой книгой по программированию, которую я читал. В частности, его Образец Строителя (пункт 2) оказал наибольший эффект. Несмотря на то, что за последние несколько месяцев программист Блоха сделал...

34
В разработке Java обычно используется больше подклассов, чем в C # / .NET?

Я недавно начал смотреть на разработку Android. Это вернуло меня в мир разработки программного обеспечения на Java. В прошлый раз, когда я работал с Java, я должен признать, что ООП я не понимал почти так же, как (я думаю), что я делаю сейчас. Поскольку я в основном использовал C # в своей карьере,...

34
Являются ли Python mixins анти-паттерном?

Я полностью осознаю, что pylintи другие инструменты статического анализа не являются всезнающими, и иногда их советам нужно не подчиняться. (Это относится к различным классам сообщений, а не только к convention.) Если у меня есть классы, такие как class related_methods(): def a_method(self):...

34
Почему использование 'final' в классе действительно так плохо?

Я занимаюсь рефакторингом старого сайта PHP OOP. Мне так хочется начать использовать 'final' на классах для " make it explicit that the class is currently not extended by anything". Это может сэкономить много времени, если я приду в класс, и мне интересно, могу ли я переименовать / удалить /...

33
Что такое общее слово для обоих методов и атрибутов?

На диаграмме классов каждый класс содержит методы и атрибуты. Какое слово подходит для описания их обоих, помимо чего-то общего, такого как содержимое или предметы? Контекст: Класс Orange расширяет класс Fruit и наследует его вещи . где вещи = одно слово для методов и...