-2

I have a class that looks like the following

public class OrderBL
{
   private _loggedInUserId;

   public OrderBL(int loggedInUserId) {
      _loggedInUserId = loggedInUserId;
   }

  public Order GetOrder()
  {
     //use logged in user id here
  }

  public List<Order> GetOrderList()
  {
     //use logged in user id here
  }

  public void DeleteOrder()
  {
     //use logged in user id here
  }

  public void SaveOrder(Order myOrder)
  {
     //DON'T use logged in user id here
  }
}

Should i be passing the logged in user id to every method or pass it in once to the constructor like i have done?

Most methods in my class require the logged in user id but not all.

user1786107
  • 2,921
  • 5
  • 24
  • 35
  • It depends if the object/parameter changes and how many different methods use the object. Object that don't change usually will be passed in the constructor while items that change every time get passed in the methods. – jdweng Mar 16 '16 at 21:27
  • Something very similar was asked just three hours before: [Java : preferred design when multiple methods share same arguments (class member ?)](http://stackoverflow.com/questions/36043291/java-preferred-design-when-multiple-methods-share-same-arguments-class-member) – Jorn Vernee Mar 17 '16 at 11:33

1 Answers1

0

_loggedInUserId is a private member of you class so it can be reached for every method in your class without having to pass it via parameter.

jonhid
  • 2,075
  • 1
  • 11
  • 18