What is the best way of manipulating the order things are done based on some conditions (other than writing them again with the different order)?
Let's say there is a Person class and each object of Person represents a different human.
class Person{
    int eatingPriority = 3;
    int sleepingPriority = 2;
    int recreationPriority = 1;
    void eat() {/*eats*/}
    void sleep() {/*sleeps*/}
    void watchTv() {/*watches tv*/}
    void satisfyNeeds() {
        //HOW TO DO THIS
    }
}
How can I make the satisfyNeeds() methods call the other three methods based on their priority?
Note: I want to make it clear that priorities can change from Person to Person.
 
     
     
     
     
     
     
     
    