Предложения по структуре данных Java - PullRequest
0 голосов
/ 13 декабря 2011

часть приложения, которое я разрабатываю, представляет пользователю форму и просит его отклонить или принять ее.Есть три типа пользователей, которым нужно будет утвердить одну и ту же форму, чтобы она считалась принятой.Мне нужно следующее предложение: Какую структуру я могу использовать / лучше всего использовать для хранения типа пользователя и его ответа?Пока у меня есть объект, который является утверждающими.Это содержит три типа пользователей с установщиками и получателями (и другими методами, связанными с операциями).Я также создал еще один объект - UserDecisions, в котором нужно установить два атрибута: тип пользователя и ответ.Но я не могу думать о том, как связать их вместе или есть ли лучший способ вообще?Спасибо,

Ps вещи, которые я рассматривал, были двумерными массивами и хэш-картами.

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

Создать базовый класс для пользователей. Расширьте их, чтобы создать свой собственный пользовательский класс, такой как утверждающие. В классе UserDecisions создайте поле для formName или userName, которое будет связывать UserDecisions с пользователями. Или вы можете создать отдельный класс для связи.

1 голос
/ 13 декабря 2011

Предположим, что у вас есть

User { name, type  }  
         // type is perhaps an enum with values such as administrator,
         // manager, seniorManager, executive 

Response { user, decision }
         // decision is an enum "pending", "approved", "rejected"

Role { name, minimumTypeOfUser }
         // first approval can be done by administrators or above
         // second approval by managers or above
         // third approval by executives only

Approval { Role, Response }


ThingToBeApproved { detalsOfWhatNeedsApproving, approvalList<Approval> }
          // when you set up the approval list you specify each
          // approval role and then select a user whose type matches
          // the role.

В системах, в которых я работаю, мы отделяем Пользователей от Ролей для выполнения задачи - иногда более старший человек выполняет роль младшего.

1 голос
/ 13 декабря 2011

«Ненормализованная» система будет иметь User с, UserType перечисление (или подобное) и набор User => Response с. Карта в порядке; это ускоряет проверку того, что пользователь не голосует дважды.

Если вам нужно агрегировать ответы по UserType, вы можете сохранить отдельный подсчет UserType => Response s по мере подсчета ответов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...