Methods in Object-Oriented Design

后端 未结 4 1560
攒了一身酷
攒了一身酷 2021-02-06 03:32

Q1. In my university studies of object-oriented modelling and design they recommend thinking about what an object can do for its method, and what its responsibilities are for it

4条回答
  •  我在风中等你
    2021-02-06 04:13

    I still experience the confusion: "am I telling you to do something else" or "am I doing something someone else asked of me"?

    Perhaps all you have to do is play Barbie's, or G.I. Joe's to understand object interaction and where responsibilities go. G.I. Joe got wounded (or Barbie broke a nail) so he calls the Dr's office. "Hey doc, this is Joe, I need an appointment." So you, the kid, tell Barbie to go to the doctor, who needs to know the doc to call and how to call - a reference and public MakeAppointment() method. The Dr. office needs to put the appointment on the books - it's own BookAppointment() method that is the office's procedure for handling appointment requests.

    public abstract GenderAppropriateDolly {
         protected DrOffice  Drkilldare;
         public override MakeAppointment() {throw new NotImplementedException();}
    }
    
    
    public class GIJoe : GenderAppropriateDolly {
        DrKilldare = new DrOffice();
        List myAppointments = new List;
    
        public void MakeAppointment () {
            myAppointments.Add(DrKilldare.BookAppointment(this));
        }
    }
    
    public class DrOffice {
        List officeAppointments = new List;
    
        public Appointment BookAppointment(GenderAppropriateDolly forWhom) {
           Appointment newappt = new Appointment(formWhom);
           this.Appointments.Add(newappt);
    
           return newappt;
        }    
    }
    
    public class Kid {
        GenderAppropriateDolly myRoleModel = new GIJoe();
    
        // Joe got wounded so ...
        myRoleModel.MakeAppointment();
    }
    

提交回复
热议问题