2009-11-16 4 views
1

Я работаю над системой регистрации. Чтобы зарегистрироваться для учетной записи, пользователь должен заполнить форму. Они могут зарегистрироваться как физическое лицо, так и компания. Кроме того, пользователи могут выбрать тип регистрации, например Pro или Basic.Система регистрации OOP

Регистрация компании включает в себя индивидуальную регистрацию, но, как компания, вы можете получить сделку, чтобы получить 2 на 1 с определенными типами регистрации (но не все).

Каждый из этих типов регистрации имеет связанные с ними расходы. Они также могут выбирать регион, у которого есть стоимость, связанная с каждой из них.

Теперь, если они выбрали базовый тип регистрации, он оплачивает только половину стоимости региона.

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

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

ответ

0

Учетная запись() фабричный класс, возвращающий экземпляр AccountIndividual() или AccountCompany().

У завода Account() есть атрибут $ type и список объектов Registration(), представляющих виды регистрации, связанные с данной учетной записью.

Класс регистрации(), который возвращает два или более подкласса RegistrationXYZ() с соответствующими атрибутами, включая атрибут $ region.

Возможно, вам понадобится создать класс Region().

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

+0

спасибо. Я решил этот подход, и мне стало намного понятнее. – ceneko

+0

Добро пожаловать. Дайте нам знать, если вы столкнетесь с любыми препятствиями на пути! – jkndrkn

2

Предлагаю использовать decision table (Table Driven Design). Очевидно, что вы должны хранить цены в какой-либо конфигурации таблицы в любом случае.

Смежные вопросы