Самый правильный способ сделать это - PullRequest
1 голос
/ 01 ноября 2010

У меня есть веб-сайт участника, не имеет значения, на каком языке или структуре это общий вопрос.Участник может отменить свою подписку изнутри и снаружи.Пока член находится внутри, я сохраняю его userID в сеансе и вызываю функцию CancelSubscription (), которая получает userID из сеанса и вызывает DB для отмены подписки.Снаружи использует электронную почту из бюллетеня, по которой пользователь может щелкнуть, чтобы закрыть подписку.

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

Методы:

  1. Создать CloseSubscription с userID (целое число) и с userEmail (string) в качестве отдельных функций.
  2. Создать переопределенную функцию для CloseSubscription, когда она получает строку в качестве параметра.
  3. Создать функцию, в которой AddUserIDFromUserEMail получает идентификатор пользователя, сохраняет в сеансе, а затем вызывается CloseSubscription.

или другое ...

спасибо

1 Ответ

1 голос
/ 01 ноября 2010

Ни одно из этих решений, потому что (для каждого из 3):

  1. Вы дублируете код удаления в 2 методах удаления
  2. Это сбивает с толку, и однажды(непреднамеренное) неявное преобразование сломает его.
  3. CloseSubscription не должно зависеть от наличия идентификатора сеанса.Что если позже вы захотите удалить подписку в автономном режиме?

Таким образом:

4: Создать CloseSubscription с userID (целое число).

Создать CloseSubscriptionEmail (электронная почта в виде строки), который ищет идентификатор пользователя, а затем вызывает CloseSubscription.

...