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

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


7
Почему цепные сеттеры нетрадиционны?
Реализация цепочки на bean-компонентах очень удобна: нет необходимости перегружать конструкторы, мега-конструкторы, фабрики и обеспечивает повышенную читаемость. Я не могу думать о минусах, если только вы не хотите, чтобы ваш объект был неизменным , и в этом случае у него все равно не было бы сеттеров. Так есть ли причина, по …

4
Распространение исключений: когда я должен ловить исключения?
MethodA вызывает MethodB, который, в свою очередь, вызывает MethodC. Нет обработки исключений в MethodB или MethodC. Но в MethodA есть обработка исключений. В MethodC происходит исключение. Теперь это исключение всплывает в методе А, который обрабатывает его соответствующим образом. Что не так с этим? На мой взгляд, в какой-то момент вызывающая …

3
Где разместить бизнес-логику в дизайне MVC?
Я создал простое Java-приложение MVC, которое добавляет записи через формы данных в базу данных. Мое приложение собирает данные, проверяет и сохраняет их. Это связано с тем, что данные поступают онлайн от разных пользователей. данные в основном числовые по своей природе. Теперь, когда числовые данные хранятся в базе данных (сервер SQL), …

10
Как модульные тесты облегчают дизайн?
Наш коллега продвигает написание модульных тестов, поскольку на самом деле помогает нам дорабатывать дизайн и реорганизовывать вещи, но я не понимаю, как это сделать. Если я загружаю файл CSV и анализирую его, как модульный тест (проверка значений в полях) поможет мне проверить мой дизайн? Он упомянул связность и модульность и …

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

9
Программирование для будущего использования интерфейсов
Рядом со мной сидит коллега, который разработал такой интерфейс: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } Проблема в том, что сейчас мы не используем этот «конечный» параметр где-либо в нашем коде, он просто есть, потому что нам, возможно, придется использовать его …

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

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

6
Почему избегать наследования Java «расширяет»
Джейм Гослинг сказал «Вы должны по возможности избегать наследования реализации». и вместо этого используйте наследование интерфейса. Но почему? Как мы можем избежать наследования структуры объекта, используя ключевое слово «extends», и в то же время сделать наш код «Object Oriented»? Может ли кто-нибудь привести пример «Объектно-ориентированный», иллюстрирующий эту концепцию в сценарии …

5
Зачем наследовать класс, а не добавлять свойства?
Я нашел дерево наследования в нашей (довольно большой) базе кода, которая выглядит примерно так: public class NamedEntity { public int Id { get; set; } public string Name { get; set; } } public class OrderDateInfo : NamedEntity { } Из того, что я мог бы собрать, это прежде всего …

13
Это неправильно использовать логический параметр для определения значений?
Согласно Неправильно ли использовать логический параметр для определения поведения? Я знаю важность избегания использования логических параметров для определения поведения, например: оригинальная версия public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } новая версия: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } Но как насчет …

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

8
ООП становится легче или сложнее? [закрыто]
Когда концепции объектно-ориентированного программирования были представлены программистам много лет назад, это выглядело интересно, и программирование было чище. ООП было так Stock stock = new Stock(); stock.addItem(item); stock.removeItem(item); Это было легче понять с помощью информативного имени. Но теперь ООП с такими шаблонами, как объекты передачи данных, объекты значений, репозиторий, внедрение зависимостей …

6
Как мне протестировать систему, в которой объекты трудно подделать?
Я работаю со следующей системой: Network Data Feed -> Third Party Nio Library -> My Objects via adapter pattern Недавно у нас возникла проблема, когда я обновил версию библиотеки, которую использовал, что, помимо прочего, приводило к тому, что метки времени (которые возвращает сторонняя библиотека как long) изменялись с миллисекунд после …

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