|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
Корзина синглтон24.09.2013, 07:39. Показов 1734. Ответов 13
Метки нет (Все метки)
Сделал 2 класса - корзина и мини-корзина (наследник предыдущего), оба синглтон, также и основной класс БД тоже такой же.
все работает, вопрос - правильно ли корзины делать синглтонами? чур не пинать, с ооп не очень
0
|
|
| 24.09.2013, 07:39 | |
|
Ответы с готовыми решениями:
13
Синглтон отдает 2 ошибки
php корзина |
|
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
|
|
| 24.09.2013, 14:11 | |
|
БД не должна быть сингелтоном, т.к. можно иметь разные подключения.
Корзина сингелтон - вполне возможно. В любом случае, если не очень с ООП, не надо тупо и в слепую использовать паттерны, надо уметь думать - стоит ли их применять в данной конкретной ситуации.
0
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||||||||||||||||||||||
| 24.09.2013, 15:01 [ТС] | ||||||||||||||||||||||
|
Не по теме: кому верить.. Добавлено через 39 минут почему я задал вопрос про 2 синглтона (корзина и мини-корзина) - интересно, если я делаю переменную БД $db приватным, то мини-корзина возвращает
Select() - метод класса DB. Ругается на приватный метод внутри класса Cart Чтобы было ясно покажу связи классов, что - куда - откуда берется: БД
Все файлы подключены, все всех видят
0
|
||||||||||||||||||||||
|
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
|
||
| 24.09.2013, 18:36 | ||
|
приватные свойства(методы) недоступны наследникам
1
|
||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||
| 24.09.2013, 19:07 [ТС] | ||
|
просто не пойму, зачем мини-корзине $db родителя? ну пускай будет свой, я же в конструкторе мини-корзины вызываю метод главного класса БД. почему там свой объект не образуется не понятно. разве синглтон не должен быть приватным? $db вообще нужно для подключения к БД и там еще общие ф-ии, никак не зависящие от класса родителя (т.е., от Cart). или при наследовании как по другому это происходит? В синглтоне вызов конструктора родителя происходит как обычно?
0
|
||
|
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
|
||
| 24.09.2013, 19:22 | ||
|
попробуем так:
Но непонятно конечно, зачем вы под одним именем сохраняете объект базы данных. это сразу путаница и ошибки
0
|
||
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|
| 24.09.2013, 19:24 | |
|
0
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||||
| 24.09.2013, 19:46 [ТС] | ||||
|
Добавлено через 22 секунды
0
|
||||
|
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
|
||
| 24.09.2013, 19:55 | ||
|
Но все равно, зачем наследовать статичный член, если он один во всей программе.. По крайней мере в данном примере. Сделать его protected, а лишний код из наследников поудалять..
1
|
||
|
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 10
|
|
| 25.09.2013, 19:44 | |
|
Вообще правильно бы было сделать например отдельный класс одиночку под бд, и там уже создавать экземпляр основного класса бд
0
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 25.09.2013, 19:54 [ТС] | |
|
0
|
|
|
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
|
|
| 25.09.2013, 20:38 | |
|
0
|
|
|
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 10
|
||||||
| 26.09.2013, 19:58 | ||||||
|
А вот например
1
|
||||||
|
10 / 5 / 0
Регистрация: 27.09.2013
Сообщений: 26
|
|
| 27.09.2013, 16:19 | |
|
Лучше создайте и для того и для другого абстрактные классы, после чего наследуйте от абстрактного, так как при желании что-то поменять в системе вам придется весь код переделывать, а это не является правилом хорошего тона.
Если я не ошибаюсь в книге четырех этот шаблон назван Abstract Factory. И для создания системы вам лучше составить в начале UML шаблон, чтобы не было непонимания кода и тогда уже определиться с целями и задачами, как говорится лучше вас ни кто не знает что вы хотите.
0
|
|
| 27.09.2013, 16:19 | |
|
Помогаю со студенческими работами здесь
14
Корзина покупок Интернет-магазин, корзина Корзина через сессии Корзина для интернет-магазина Корзина товаров PHP ! :cry: Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|