简体   繁体   中英

handling more than one request

I am writing an ordering system.

In this program, the user can request food. For this purpose I have a class named User and a class named Food .

In the class Program I have a field which is a list field that contains foods object. In the class Program I also have a field of user object.

Now I am a bit confused. The thing is if two users at the same time request order, do I need to use a list of users in my Program class or is the one field enough? Or do I need to use threading.

The way I have written the app, it just handles one request at the time. So what about further requests? What changes do I need to apply so it handles users' requests?

I am not using any database at the moment (which I am not that much familiar with)

class User {
  private string name;
  private string address;
  // ...
}

class Food {
  private string name;
  private int id;
  // ...
}

class Program {
  private User user;
  private List<Food> foods;
  // ...
}

If you want to associate a more than one food objects with a user, you could have a list of foods with their IDs for each user (that means a list of foods in every user class), so you could add the ordered food items to each user and you should have a users list in your program and a food list containing all the default food items with their IDs. But why don't you take a look in making it with a DB system (like SQLite) or XML with DataSet and DataTable (you could have your foods as an XML file and you could easily load it into a DataSet or save it from a DataSet to an XML file)?

A list of Foods is maintained for each User. You can have a Dictionary here.

class Program {
    private Dictionary<User, List<Food>> userFoodsMap;
    // ...
}

Or, you can have a special class that binds Food's to User

class UserFoodsMap {
    private User user;
    private List<Food> foods;
    // ...
}

class Program {
    private List<UserFoodsMap> userFoodsMap;
    // ...
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM