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

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

265
Почему закрытые поля недостаточно защищены?

privateПолезна ли видимость полей / свойств / атрибутов класса? В ООП рано или поздно вы создадите подкласс класса, и в этом случае полезно понять и иметь возможность полностью изменить реализацию. Одна из первых вещей, которые я делаю, когда делаю подкласс класса, - это изменение набора...

250
Если неизменные объекты хороши, почему люди продолжают создавать изменяемые объекты? [закрыто]

Если неизменяемые объекты¹ хороши, просты и дают преимущества в параллельном программировании, почему программисты продолжают создавать изменяемые объекты2? У меня есть четыре года опыта в программировании на Java, и, как я понимаю, первое, что люди делают после создания класса, - это генерирование...

243
Должны ли мы избегать создания объектов в Java?

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

227
Должны ли имена пакетов быть единственными или множественными?

Часто, особенно в библиотеках, пакеты содержат классы, которые организованы вокруг единой концепции. Примеры: xml, sql, user, config, db . Я думаю, что мы все вполне естественно чувствуем, что эти пакеты правильны в единственном числе . com.myproject. xml. Элемент com.myproject. SQL .Connection...

210
Зачем нам нужны частные переменные?

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

175
Когда оправдываются геттеры и сеттеры?

Геттеры и сеттеры часто критикуются за то, что они не являются правильными. С другой стороны, большая часть кода OO, который я видел, содержит обширные методы получения и установки. Когда получатели и установщики оправданы? Вы пытаетесь избежать их использования? Они чрезмерно используются в целом?...

143
Откуда взялась эта концепция «отдавать предпочтение композиции перед наследованием»?

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

140
Являются ли плохие методы программирования типичными для индустрии программного обеспечения? [закрыто]

Я только начал свою первую работу в качестве разработчика программного обеспечения более месяца назад. Все, что я узнал об ООП, ТВЕРДОМ , СУХОМ , ЯГНИ, шаблонах проектирования, SRP и т. Д., Можно выбросить из окна. Они используют C # .NET Webforms и делают почти все внутри Code Behind с очень...

135
Лучше ли возвращать NULL или пустые значения из функций / методов, где возвращаемое значение отсутствует?

Я ищу рекомендацию здесь. Я борюсь с тем, лучше ли возвращать NULL или пустое значение из метода, когда возвращаемое значение отсутствует или не может быть определено. Возьмите следующие два метода в качестве примера: string ReverseString(string stringToReverse) // takes a string and reverses it....

122
Какова идеальная длина метода для вас? [закрыто]

В объектно-ориентированном программировании, конечно, нет точного правила о максимальной длине метода, но я все же обнаружил, что эти две цитаты несколько противоречат друг другу, поэтому я хотел бы услышать, что вы думаете. В « Чистом коде: справочник по мастерству гибкого программного...

115
Что на самом деле является «бизнес-логикой»?

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

101
Должен ли я избегать частных методов, если я выполняю TDD?

Я только сейчас изучаю TDD. Насколько я понимаю, частные методы не поддаются проверке и не должны беспокоиться, потому что общедоступный API предоставит достаточно информации для проверки целостности объекта. Я понял ООП некоторое время. Насколько я понимаю, частные методы делают объекты более...

97
Является ли инкапсуляция еще одним из ООП слонов?

Инкапсуляция говорит мне сделать все или почти все поля приватными и выставить их через getters / setters. Но теперь появляются такие библиотеки, как Lombok, которые позволяют нам раскрывать все приватные поля одной короткой аннотацией @Data. Он создаст геттеры, сеттеры и конструкторы настроек для...

95
Должны ли мы устранить локальные переменные, если мы можем?

Например, чтобы сохранить процессор в Android, я могу использовать такой код: PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc"); wakeLock.acquire(); но я думаю локальные переменные...

95
Так что же на самом деле имел в виду Алан Кей под термином «объектно-ориентированный»?

Как сообщается, Алан Кей является изобретателем термина «объектно-ориентированный». И его часто цитируют так, как будто он сказал, что то, что мы сегодня называем ОО, не имеет в виду. Например, я только что нашел это в Google: Я придумал термин «объектно-ориентированный» и могу сказать, что я не...

94
Нулевое поведение объектов в ООП - моя дилемма дизайна

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

93
Функциональное программирование против ООП [закрыто]

В последнее время я много слышал об использовании функциональных языков, таких как Haskell. Каковы некоторые из больших отличий, плюсов и минусов функционального программирования от объектно-ориентированного...

92
Почему ООП сложно? [закрыто]

Когда я начал использовать объектно-ориентированный язык (Java), я просто стал «крутым» и начал писать код. Я никогда не задумывался об этом до недавнего времени, прочитав много вопросов об ООП. Общее впечатление, которое я получаю, это то, что люди борются с этим. Поскольку я не думал об этом как...

92
Почему C не считается «объектно-ориентированным» языком?

Кажется, что у С есть свои квазиобъекты, такие как «структуры», которые можно рассматривать как объекты (на высоком уровне, который мы обычно думаем). Кроме того, сами файлы C в основном являются отдельными "модулями", верно? Тогда разве модули тоже не похожи на «объекты»? Меня смущает, почему C,...