Может ли Class Class использоваться для разделения проблем вместо AOP? - PullRequest
0 голосов
/ 22 апреля 2011

Я задал вопрос об Интерфейсе здесь Как организовать иерархию интерфейсов классов? , и кто-то ответил на Разделение Концерна.

Есть ли связь между этим разделением интересов с интерфейсом класса и AOP?

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Используя интерфейс, вы можете группировать похожие методы вместе, а затем инкапсулировать детали в реализации. Как правило, это делает ваше приложение более переносимым. Например, если у вас есть несколько реализаций DAO для разных поставщиков баз данных, вы можете создать интерфейс и реализовать его для каждой базы данных. Вы можете поменять реализацию, сохранив структуру интерфейса такой же.

Используя АОП, вы можете отделить сквозные задачи в приложении. Например, если все ваши методы DAO требуют управления транзакциями, это общая проблема, и вы можете использовать там шаблон AOP.

Разделение интересов - это общий термин и общий принцип программирования. Вы хотите отделить столько, сколько сможете. Используя оба интерфейса и AOP, вы можете способствовать развязке.

1 голос
/ 22 апреля 2011

AOP - это просто другая парадигма программирования, которая имеет ООП для столба ниже.

Интерфейсы классов - это нечто более конкретное, и их следует использовать, когда вы хотите определить свойство, которое может быть общим для разных классов.

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

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

...