kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 RoboTamer
RoboTamer
Вопрос

существует ли противоположность абстрактному классу?

Я использую свой собственный PHP-фреймворк, и он в значительной степени основан на компонентах, в основном от pear и Zend, но в последнее время появляются некоторые лучшие компоненты Composer.

Поскольку мои приложения растут, становится все труднее переключаться между компонентами, и я задаюсь вопросом, есть ли способ разработать мои программы по-другому. Таким образом, чтобы я мог использовать компоненты как противоположность абстрактным классам.

Я думаю, что должен быть способ создания собственных классов, которые, в свою очередь, просто подключаются к pear или zend и используют эти классы, как если бы они были интерфейсами или абстрактными классами. Конечно, они будут выполнять фактическую работу, а я буду просто ссылаться на них.

Гипотетически, если я использовал pear Config/Lite, который может работать только с ini и файлами массивов, а теперь я хочу перейти на pear config или Zend config, чтобы получить преимущество сохранения данных в базе данных, то должен быть простой способ переключиться без изменения всего моего кода, поскольку они реализуют одно и то же.

Я спрашиваю, потому что я использовал pears Net/URL/Mapper, который не так уж плох, но я нашел что-то, что также позаботится о диспетчеризации, и это активно развивается. Также я уверен, что подобная ситуация будет возникать снова и снова.

0 2012-07-11T17:14:52+00:00 2
 PeeHaa
PeeHaa
Редактировал вопрос 12-го июля 2012 в 7:45
Программирование
oop
interface
php
abstract-class
Решение / Ответ
 Robert
Robert
11-го июля 2012 в 5:21
2012-07-11T17:21:20+00:00
Дополнительно
Источник
Редактировать
#16663694

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

2
0
 quickshiftin
quickshiftin
11-го июля 2012 в 5:22
2012-07-11T17:22:03+00:00
Дополнительно
Источник
Редактировать
#16663695

Для этого, IMO, следует использовать композицию. Пусть классы в вашей библиотеке открывают свой собственный публичный интерфейс, от которого зависит остальная часть вашего кода. Если вы когда-либо измените основу компонента, скажем, с PEAR на Zend, просто убедитесь, что все оригинальные публичные методы по-прежнему соответствуют предыдущей версии, и все будет в порядке. При желании вы можете формализовать эти интерфейсы с помощью ключевого слова interface, но это выходит за рамки данного ответа ;)

1
0
Похожие сообщества 23
phpGeeks
phpGeeks
4 759 пользователей
Best PHP chat @phpGeeksJunior - новичкам @golangGeeks - гошка @jobGeeks - вакансии(250000 р/мес) @dbGeeks - базы данных @ebanoePhp - канал о PHP @laravel_pro - Laravel @jsChat - JS @moscowProgers - Москва Реклама: https://vk.cc/cbJtVV ДР - 28.03.2016
Открыть telegram
PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
4 188 пользователей
Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii etc. Full/par-time, remote и т.д. ПРАВИЛА: https://t.me/php_jobs/45345 Флудильня: @phpimhorus More: @javascript_jobs, @nodejs_jobs, @devops_jobs, @sql_jobs
Открыть telegram
phpGeeksJunior
phpGeeksJunior
2 980 пользователей
Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Реклама: https://vk.cc/cbJtVV Правила и полезные ссылки https://github.com/phpgeeks-club/faq Бест от пхпгикс https://t.me/best_of_phpgeeks
Открыть telegram
#php chat
#php chat
2 827 пользователей
Группа для новичков и бывалых. Не стесняйтесь задавать вопросы по php. Уважаем друг друга Администрация: @faramanx Сотрудничество: @adskiy_tony
Открыть telegram
PHP
PHP
2 742 пользователей
Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды правила чата: https://gist.github.com/fesor/6c8b162ac1e2fe4d6f227341ec8eaadf Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev
Открыть telegram
PHP.Zone Chat - Сообщество PHP-разработчиков
PHP.Zone Chat - Сообщество PHP-разработчиков
1 682 пользователей
Чат PHP разработчиков от проекта https://php.zone Общаемся по делу. Для оффтопика отдельный чат @php_zone_offtop
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 5 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией