2015-10-25 3 views
-1

Я совершенно новая для ООП концепции, и я пытаюсь создать систему системы доставки еды, и у меня есть разные пользователи (администраторы, клерки, должностные лица), которые имеют доступ к системеПутаница классов

у меня есть клиенты, которые будут зарегистрированы в системе и заказы, которые будут размещены для клиентов.

Поэтому я создал методы для регистрации клиентов (registerCustomer) и размещения заказов (placeOrder) наряду с другими методами. Теперь я довольно запутался, какие классы будут использовать эти методы. Если registerCustomer переходит под мой класс User (который наследуется от разных пользователей) или класса Customer. То же самое касается размещения заказа. Должен ли я создать класс заказа или поместить его в класс Customer или User

+0

http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html – melpomene

ответ

0

Существует достаточно много способов сделать это, и многие книги и онлайн-ресурсы, которые могут научить вас объектно-ориентированному программированию. В общем, вы хотите разместить свои методы в классах, на которых работают эти методы, а не на классы, которые не могут быть затронуты этими методами. Итак, если можно зарегистрировать только Customers, а Clerks и Officers не могут, то метод registerCustomer() должен быть доступен только из класса Customer, а не класса User, на который он наследуется. Аналогично, если только Customer может разместить Order, тогда здесь должен быть найден метод placeOrder().

Однако вы также должны учитывать, какой другой объект участвует в каждой операции. Например, возможно, метод registerCustomer() действительно принадлежит классу FoodDeliverySystem. Например:

FoodDeliverySystem mySystem = new FoodDeliverySystem(); 
Customer myCustomer = new Customer(); 
Order myOrder = new Order(); 

mySystem.registerCustomer(myCustomer); 
myCustomer.placeOrder(myOrder); 
Смежные вопросы