2014-10-15 2 views
0

Пожалуйста, помогите мне с объектно-ориентированным программированием. У меня есть класс Основной класс где я создал Клиент объект (экземпляр) класса Клиенты класса. После этого я создал объект Адрес (пример) Класс Адреса в Основной класс.Как установить флаг для указанного объекта из другого объекта другого класса?

У одного клиента есть несколько Адресов, но только один адрес может быть основным (основным).

Вопрос: как установить для существующего объекта Клиент, что он имеет основной адрес. Мне нужно сделать это из объекта Адрес, потому что есть логика выбора главного адреса в объекте Адрес. Спасибо.

+2

Показанный код может помочь вам. –

+0

Вы не должны выбирать главный адрес в классе 'Address', а вместо него вместо' Client'. Что делать, если вы будете использовать класс «Адрес» в большем количестве контекстов? Пусть потребители такого класса обернут свою логику вокруг списка адресов. – moonwave99

ответ

0

Если вы тусклый добавить

для существующего объекта клиента, что он уже главный адрес

с фокусом на Client объекта, одно решение может быть Decorator_design_pattern. Так как он позволяет динамически присоединять дополнительные обязанности к объекту. Декораторы обеспечивают гибкую альтернативу подклассу для расширения функциональности. Вы можете рассмотреть следующие участник в своей реализации:

public abstract class Component{} 

(AddressableObject) определяет интерфейс для объектов, которые могут иметь обязанности, добавленные к ним динамически.

public class ConcreteComponent{} 

(Персона) определяет объект, к которому можно прикрепить дополнительные обязанности.

public abstract class Decorator extends Component {} 

(декоратор) поддерживает ссылку на компонент объекта и определяет интерфейс, который соответствует интерфейсу компонента.

public class ConcreteDecorator extends Decorator{} 

(BasicAdress) добавляет обязанности к компоненту.

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