[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите на примере абстр. разложить на объекты
Страницы: 1, 2
sx000
Ну увидел я пробел в своем образовании на php, вернее меня ткнули в него :). Толком по ооп не нашел для php книг, по этому почитал Java, помогло хорошо.
Хочу написать биржу обмена валют. Кто то ставит лот и резервирует деньги, кто то выкупает данный лот. Это мой первый ооп проект. Прошу помощи в верном распределении и обозначении объектов.
Я вижу объекты

клиент
свойства:
- ID (емайл)
методы:
- покупать
- продавать

площадка для обмена
свойства:
-
методы:
- дает добавлять лоты
- дает выкупать лоты
- ведет статистику


....
А какие еще объекты, может я сильно все обобщаю?
Valick
sx000, рискую опять выглядеть в дурном свете, но...
у вас примерно так....
хочу сконструировать автомобиль
я вижу колеса их четыре и они круглые
....
А дальше что smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
sx000
так покажите пример, я же не за критикой пришел.... где вы усмотрели фразу: покритикуйте мои объекты .... смотрите насколько грамотно я это сделал.
Valick
Где вы усмотрели критику ваших (как бы вам так помягче намекнуть, а то вдруг заплачите) зородышей оъектов, я про них ни слова не сказал.
Я лишь вам привел пример того как выглядит ваша просьба со стороны, что бы вы не удивлялись отсутсвию активности в вашей теме.
Тут темы на целую книгу, а учитывая работу с финансами, на все три книги. А вы хотите обсудить это в теме на форуме. Вы себе представляете как долго вас будут "любить" если у одного клиента спишут со счета, а другому денежки так и не дойдут.
Да и легальность подобных сделок под вопросом.

_____________
Стимулятор ~yoomoney - 41001303250491
sx000
Цитата
заплачите ...

я вас очень прошу не нужно писать в этой ветке. Просто тупо - не пишите и все smile.gif. Зачем вы это делает, пишите второй раз одно и тоже. Если для вас - это не имеете никако́го смысла. Не пишите, а если уж есть, что сказать так скажите блесните своим умом так я думаю и вас покритикуют нашим дружным сообществом. А так сотрясать воздух не надо, я вас прошу.
какие книги вообще blink.gif , вы о чем ... я не слова не задал про финансы, и уж тем более про легальность сделок smile.gif. Я просто прошу помощи в построении первого проекта ооп. Верно раскидать объекты. Не более того. Я не прошу детализации - общии абстракции, дальше я сам без вас буду додумывать. Если уж не буду справлять снова приду.
Valick
Какой вы непробиваемый smile.gif
Ок, молча подожду вместе с вами верно раскиданных объектов wink.gif
__
кстати в зородыше тоже ошибка tongue.gif

_____________
Стимулятор ~yoomoney - 41001303250491
SlavaFr
@sx000 начинать проект с интерфейсов актеров как это сделал ты, это совсем не плохо и соответствует принципам (domain driven programming). Нужно проанализировать все методы и прикинуть не понадобятся ли дополнительные методы или объекты. Скорей всего для того, чтоб программа работала потребляя минимально ресурсы прийдется создавать дополнительные слои объектов которые общаются с DB, но это тоже не страшно. Положительным эфектом того, что ты создаешь объекты с понятными и именами и методами, будет то, что в будующем будет очень просто делать изменения не только тебе, но и другим программистам.

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
sx000
да я именно так и стараюсь создавать объекты абстрагируясь от кода вообще, подобъекты конечно же будут, но не далее 3 уровней в низ чтоб не запутаться.
Michael
Еще объект лот надо будет.
В базе данных какая информация будет храниться, и какие операции над ней происходить будут, сначала с этим определиться.
А потом уже проектировать какая операция - ответственность какого объекта и что ему нужно от других объектов для выполнения операции.

p.s. На Valick-а не обращай внимание, он из печально известной секты ооп ненавистников, поэтому он так себя и ведет в твоей теме.

_____________
There never was a struggle in the soul of a good man that was not hard
sx000
Цитата
p.s. На Valick-а не обращай внимание, он из печально известной секты ооп ненавистников, поэтому он так себя и ведет в твоей теме.

smile.gif

Michael а что за ЛОТ объект. Как расшифровывается?
Michael
Цитата (sx000)
Кто то ставит лот и резервирует деньги, кто то выкупает данный лот

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


_____________
There never was a struggle in the soul of a good man that was not hard
sx000
ааа smile.gif а я думал это какая то аббревиатура из программирования и сижу пытаюсь понять что такое ЛОТ хаха ... Да да на счет сущностный это читал тренировался smile.gif. Спасибо за советы
Valick
Цитата
он из печально известной секты ооп ненавистников

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


_____________
Стимулятор ~yoomoney - 41001303250491
Michael
оффтоп
Свернутый текст
Цитата (Valick)
ссылочку

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


_____________
There never was a struggle in the soul of a good man that was not hard
bestxp
вообще правильно пошел верным путем, НО модель не должна по сути быть завязана на бд,
то есть поля модели не обязательно равны полям в бд, для таких вещей нужны мапперы(классы которые делают из данных в бд, нормальные коллекции и модели )

А так же совет следи за принципом единой ответственности, то есть ( у одного класса своя ответственность )

Например, у товара может быть цена, но он не может себя продать, или посчтитать свою сумму.

на твоем примере

площадка для обмена
свойства:
-
методы:
- дает добавлять лоты
- дает выкупать лоты
- ведет статистику ( использует интерфейс статистики )

Интерфейс статистики
метод - записать статистику


А что и как пишет статистику решается уже в классах реализующих интерфейс
То есть в любом случае код будет дробиться на большое число малых классов,
Главное не запутай, логику получения данных, с логикой записи и чтения, модель этого делать не должна, должен делать класс посредник, а в общем Молодец с большой буквы
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.