По сути, у меня есть объект (называемый Session), который будет предоставлять множество различных услуг. Каждый сервис может быть выборочно включен или выключен пользователем (вход или выход). Я не уверен, что лучший дизайн, чтобы представить это. См UML
С точки зрения варианта использования программирования, взаимодействия с экземпляром Session:
Session session = new Session( "1234" ); // 1234 is the userid
session.start();
session.serviceSignIn( ServiceType.DELICIOUS );
.... do stuff ...
session.serviceSignOut( ServiceType.DELICIOUS );
session.serviceSignIn( ServiceType.MAGNOLIA );
.... do stuff ...
session.serviceSignOut( ServiceType.MAGNOLIA );
Другой возможный дизайн:
session.delicious().signIn();
.... do stuff ...
session.delicious().signOut();
session.magnolia().signIn();
.... do stuff ...
session.magnolia().signOut();
Что мне лучше выбрать? Какие ошибки я делаю?