Запитання з тегом «object-oriented»

Методологія, яка дозволяє моделювати систему як сукупність об'єктів, якими можна модульно керувати та керувати ними

17
Чому приватні поля є недостатньо захищеними?
Чи privateкорисна видимість полів / властивостей / атрибутів класу? В OOP рано чи пізно ви збираєтеся скласти підклас класу, і в цьому випадку добре зрозуміти і мати можливість повністю змінити реалізацію. Одне з перших речей, які я роблю, коли підклас класу, - це змінити купу privateметодів protected. Однак приховування деталей …

23
Якщо непорушні предмети хороші, чому люди продовжують створювати змінні предмети? [зачинено]
Якщо незмінні об'єкти¹ хороші, прості та пропонують переваги при одночасному програмуванні, чому програмісти продовжують створювати об'єкти, що змінюються²? У мене є чотирирічний досвід роботи в програмуванні Java, і, як я це бачу, перше, що люди роблять після створення класу, - це генерувати геттери та сетери в IDE (таким чином роблячи …

14
Чи слід уникати створення об’єктів на Java?
Мені сказав колега, що в Java створене об'єктів - це найдорожча операція, яку ви могли виконати. Тож я можу лише зробити висновок, щоб створити якомога менше об’єктів. Це, здається, дещо перешкоджає меті об'єктно-орієнтованого програмування. Якщо ми не створюємо об'єкти, тоді ми просто пишемо один довгий стиль класу C для оптимізації?

2
Чи повинні назви пакетів бути одниною чи множиною?
Часто в бібліотеках, особливо, пакунки містять класи, які організовані навколо однієї концепції. Приклади: xml, sql, користувач, config, db . Я думаю, що ми всі природно відчуваємо, що ці пакети є правильними в однині . com.myproject. xml .Element com.myproject. sql .Connection com.myproject. Користувач .user com.myproject. користувач .UserFactory Однак якщо у мене …

15
Навіщо нам потрібні приватні змінні?
Навіщо нам потрібні приватні змінні в класах? Кожна прочитана книга з програмування говорить, що це приватна змінна, саме так ви її визначаєте, але зупиняється на цьому. Формулювання цих пояснень мені завжди здавалося так, ніби ми справді маємо кризу довіри до своєї професії. Пояснення завжди звучали так, ніби інші програмісти зіпсують …


16
Коли виправдані геттери та сетери
Геттерів та сетерів часто критикують як неналежне ОО. З іншого боку, більшість кодів, що я бачив, мають великі геттери та сетери. Коли виправдані геттери та сетери? Ви намагаєтесь уникати їх використання? Чи загалом вони зловживають? Якщо ваша улюблена мова має властивості (мої), то такі речі також вважаються геттерами та сетерами …

14
Звідки береться таке поняття «корисний склад над спадщиною»?
В останні кілька місяців мантра "прихильність композиції над спадщиною", схоже, виникла з нізвідки і стала майже якоюсь мемою всередині спільноти програмування. І кожного разу, коли я це бачу, я трохи загадую. Це як би хтось сказав "віддайте перевагу свердлам над молотками". На мій досвід, склад і успадкування - це два …

8
Чи характерні погані практики програмування в галузі програмного забезпечення? [зачинено]
Я тільки почав свою першу роботу як розробник програмного забезпечення понад місяць тому. Все, що я дізнався про OOP, SOLID , DRY , YAGNI, шаблони дизайну, SRP тощо, можна викинути у вікно. Вони використовують C # .NET Webforms і роблять майже все, що знаходиться в кодексі позаду, із дуже малою …

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

14
Яка ідеальна тривалість методу для вас? [зачинено]
У об'єктно-орієнтованому програмуванні, звичайно, немає точного правила щодо максимальної тривалості методу, але я все-таки виявив, що ці два цитати дещо суперечать один одному, тому я хотів би почути, що ви думаєте. У чистому коді: Підручник з гнучкої майстерності програмного забезпечення , Роберт Мартін говорить: Перше правило функцій полягає в тому, …

6
Що насправді є "бізнес-логікою"?
Я працюю з веб-розробкою з 2009 року, коли почав з PHP. Коли я перейшов на ASP.NET, я багато чув про DDD та OOAD, де багато уваги приділяється цій "бізнес-логіці" та "правилам бізнесу". Справа в тому, що всі програми, які я розробляв дотепер, стосувалися операцій CRUD, і я цього ніколи не …

12
Чи слід уникати приватних методів, якщо виконую TDD?
Я тільки зараз вивчаю TDD. Наскільки я розумію, що приватні методи не піддаються застосуванню і не варто їх турбувати, оскільки загальнодоступний API надасть достатньо інформації для перевірки цілісності об'єкта. Я деякий час розумів ООП. Я розумію, що приватні методи роблять об'єкти більш інкапсульованими, тим самим стійкішими до змін та помилок. …

17
Чи є інкапсуляція ще одним із слонів, на яких стоїть ООП?
Інкапсуляція підказує мені зробити всі або майже всі поля приватними та викрити їх за допомогою геттерів / сетерів. Але зараз з'являються такі бібліотеки, як Lombok, які дозволяють нам виставити всі приватні поля одним коротким анотацією @Data. Він створить геттери, сетери та конструктори налаштування для всіх приватних полів. Чи може хтось …

13
Чи повинні ми усунути локальні змінні, якщо можемо?
Наприклад, щоб підтримувати процесор в Android, я можу використовувати такий код: PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc"); wakeLock.acquire(); але я думаю , що локальні змінні powerManagerі wakeLockможе бути усунутий: ((PowerManager)getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag") .acquire(); подібна сцена з’являється в режимі попередження iOS, наприклад: від UIAlertView *alert = [[UIAlertView alloc] …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.