I have 2 different types of users in my app: LoggedInUser and GuestUser They both have same functionalities such as createNewOrder and cancelOrder (the implementation should be different) but LoggedInUser can do much more such as WriteReview,FavouriteProduct etc.
I want a design pattern for these types of users, so that I don't check which type of user my application has at the moment and I just call the method without knowing the actual type of the user.
Is it even possible to do this? Which design pattern is the most suitable?
What I have done so far is creating an abstract class called User which has the similar functionalities:
abstract class User{
void createOrder()
void cancelOrder()
}
and also a class for LoggedInUser and a class for GuestUser:
class LoggedInUser extends User{
//some instance variables
void favouriteProduct(String id){
//...
}
void writeReview(Review review){
//...
}
@override
void cancelOrder(){
//...
}
@override
void cancelOrder(){
//...
}
}
class GuestUser extends User{
//some instance variables
@override
void cancelOrder(){
//...
}
@override
void cancelOrder(){
//...
}
}
Thanks
Aucun commentaire:
Enregistrer un commentaire