Кажется, что, хотя я стремлюсь поддерживать принципы OO, все это кажется таким надуманным или неестественным.Может ли веб-приложение быть объектно-ориентированным?
ответ
Если вы думаете о объектах как о конструкциях для хранения информации о состоянии, определение «объектно-ориентированное» становится напряженным безгражданностью веб-запросов. Тем не менее, объекты без гражданства все еще являются объектами, и веб-приложения могут следовать принципам проектирования OO в этом контексте.
да, это то, что я имел в виду. – zsharp
Мой совет - не слишком догматично относиться к принципам ОО. Они работают хорошо, но иногда, когда люди говорят, что они стремятся поддерживать принципы OO, это может означать, что они создают класс для всего, даже если это не подходит. Вещи также становятся менее неестественными, поскольку вы привыкаете к ним, например, «x = 3» является естественным для задания, хотя кто-то с математическим фоном подумает, что это неестественно.
Вы также можете попробовать взглянуть на существующие веб-приложения OO и шаблоны проектирования. Обычным шаблоном проектирования OO является шаблон MVC, который поддерживается (почти принудительно) Ruby on Rails и Django. Сделайте поиск MVC.
оригинальный OO-MVC имеет смысл только для графических интерфейсов, более распространенный web-MVC является более многослойным, чем OO. – Javier
Хавьер, не могли бы вы рассказать об этом в отношении расслоения? – zsharp
GUI-MVC (популярный на SmallTalk) был модульным и OOP; каждый модуль имел три объекта, более или менее плотно соединенные, образуя единый модуль, созданный при необходимости. web-MVC, OTOH, представляет собой три слоя, а не объекты, каждый из которых абстрагирует какой-то аспект, чтобы обеспечить доступ к какой-либо части более высокого уровня (хранение, представление и поток управления). они не составлены в более крупной подсистеме, и они не представляют собой визуальный элемент, вместе они управляют всем приложением (или subapp). совершенно разные вещи, возможно, связанные только на философском уровне, а не на уровне дизайна. – Javier
- 1. Может ли Swift быть вложенным?
- 2. Может ли интерфейс быть расширен?
- 3. Может ли EntityObject быть подклассифицированным?
- 4. Может ли интерфейс быть потомком?
- 5. Может ли структура быть освобождена?
- 6. Может ли Microsoft.Build.BuildEngine быть многопоточным
- 7. Может ли nsIAlertsService быть постоянным?
- 8. Может ли iPhone быть виртуализированным?
- 9. Может ли Bootstrap быть настроен?
- 10. Может ли DateTime быть нулевым?
- 11. Может ли интерфейс быть суперклассом?
- 12. Может ли объект быть ложным?
- 13. Может ли class_alias() быть отменен?
- 14. Может ли UIStackView быть ограниченным?
- 15. Может ли msgget быть злым?
- 16. Может ли IIS6 быть виноват?
- 17. Может ли быть несколько init.pp?
- 18. Может ли devicePixelRatio быть нулевым?
- 19. Может ли деструктор быть рекурсивным?
- 20. Может ли метакласс быть вызванным?
- 21. Может ли оператор «(« быть перегруженным?
- 22. Может ли document.referrer быть подделан?
- 23. Может ли UITabBarController быть segue.destinationViewController?
- 24. Может ли Javascript быть загружен?
- 25. Может ли DataTemplate быть страницей?
- 26. Может ли app_offline.hml быть локализованным?
- 27. Может ли объект быть полем?
- 28. Может ли FORMSOF быть вложенным?
- 29. Может ли Майлар быть взломан?
- 30. Может ли это быть общим
Эластируйте пожалуйста. – DevinB
Или, еще лучше, задайте реальный вопрос. – cgp
Я понимаю, что мой комментарий был действительно довольно расплывчатым (о иронии). Не могли бы вы рассказать, в каком смысле ваш код OO кажется надуманным или неестественным. Какие шаблоны проектирования вы пытаетесь использовать, и как они вас терпят неудачу? – DevinB