comp.lang.ada
 help / color / mirror / Atom feed
From: "Matthew Heaney" <mheaney@on2.com>
Subject: Re: 'withing' problem
Date: Fri, 9 Nov 2001 15:28:48 -0500
Date: 2001-11-09T15:28:48-05:00	[thread overview]
Message-ID: <tuoetohbaump12@corp.supernews.com> (raw)
In-Reply-To: 3be65f4c$0$237$ed9e5944@reading.news.pipex.net


"David Crocker" <dcrocker@imsltd.com> wrote in message
news:3be65f4c$0$237$ed9e5944@reading.news.pipex.net...
> OK, so if you think cross-dependency reflects bad design when the
> implementation language is Ada, can you tell me how you would redesign the
> Doctor/Patent/Insurer example in
> http://home.bluemarble.net/~jvolan/WithingProblem/FAQ.html ?

There is no withing problem.  One possible solution appears below.

John is confused, and I recommend you disregard his paper.

Use gnatchop to extract the sources below.

--STX
with Patients; use Patients;

package body Doctors is

   procedure Treat_Patient
     (Doctor : in out Doctor_Type;
      Patient : in out Root_Patient'Class) is

      P : Patient_Type'Class renames Patient_Type'Class (Patient);
   begin
      null;
   end;


   procedure Bill_Patient
     (Doctor : in out Doctor_Type;
      Patient : in out Root_Patient'Class) is

      P : Patient_Type'Class renames Patient_Type'Class (Patient);
   begin
      Pay_Doctor (P, Doctor);
   end;


end Doctors;
with Patients_Forward; use Patients_Forward;

package Doctors is

   type Doctor_Type is tagged limited null record;

   procedure Treat_Patient
     (Doctor : in out Doctor_Type;
      Patient : in out Root_Patient'Class);

   procedure Bill_Patient
     (Doctor : in out Doctor_Type;
      Patient : in out Root_Patient'Class);

end;
   with Doctors; use Doctors;

package body Patients is

   procedure Visit_Doctor
     (Patient : in out Patient_Type;
      Doctor  : in out Doctor_Type) is
   begin
      Treat_Patient (Doctor, P);
   end;

   procedure Pay_Doctor
     (Patient : in out Patient_Type;
      Doctor  : in out Doctor_Type) is
   begin
      null;
   end;

end Patients;
with Patients_Forward; use Patients_Forward;
with Doctors; use Doctors;

package Patients is

   type Patient_Type is new Root_Patient with null record;

   procedure Visit_Doctor
     (Patient : in out Patient_Type;
      Doctor  : in out Doctor_Type);

   procedure Pay_Doctor
     (Patient : in out Patient_Type;
      Doctor  : in out Doctor_Type);

end;
package Patients_Forward is

   type Root_Patient is abstract tagged limited null record;

end;






  parent reply	other threads:[~2001-11-09 20:28 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-02 10:24 'withing' problem David Crocker
2001-11-02 10:58 ` David C. Hoos, Sr.
2001-11-02 21:32   ` Florian Weimer
2001-11-02 14:49 ` Robert Dewar
2001-11-05  9:49   ` David Crocker
2001-11-02 15:06 ` Wes Groleau
2001-11-02 15:21 ` Ted Dennison
2001-11-02 17:19   ` Ed Falis
2001-11-02 18:17     ` Preben Randhol
2001-11-02 19:15       ` Ed Falis
2001-11-03  2:52       ` DuckE
2001-11-03  9:50         ` Preben Randhol
2001-11-03  8:25   ` Simon Wright
2001-11-03 17:27     ` Richard Riehle
2001-11-04 10:23       ` Simon Wright
2001-11-08 10:58         ` Preben Randhol
2001-11-08 15:24           ` Peter Hend�n
2001-11-10 17:57           ` Simon Wright
2001-11-05  9:48       ` David Crocker
2001-11-05 20:36         ` Ted Dennison
2001-11-06 15:56           ` David Crocker
2001-11-07 15:06             ` Ted Dennison
2001-11-07 16:49               ` Darren New
2001-11-09 20:28         ` Matthew Heaney [this message]
2001-11-10 13:55           ` Preben Randhol
2001-11-12 15:10             ` Matthew Heaney
2001-11-10 18:12           ` Simon Wright
2001-11-12 15:13             ` Matthew Heaney
2001-11-13  7:01               ` Simon Wright
2001-11-14 16:10                 ` Matthew Heaney
2001-11-15 20:21                   ` Simon Wright
2001-11-15 21:07                     ` Matthew Heaney
2001-11-16 14:37                     ` Stephen Leake
2001-11-17 22:29                     ` Richard Riehle
2001-11-18 14:53                       ` Simon Wright
2001-11-19  5:51                         ` Simon Wright
2001-11-19 15:23                         ` Matthew Heaney
2001-11-19 17:19                           ` 'withing' problem [code generation] Mark Johnson
2001-11-19 20:58                             ` Stephen Leake
2001-11-19 21:20                               ` Matthew Heaney
2001-11-21  6:20                                 ` Simon Wright
2001-11-20  0:50                               ` Mark Biggar
2001-11-21  6:21                                 ` Simon Wright
2001-11-20 14:42                               ` Mark Johnson
2001-11-20 16:34                                 ` David Crocker
2001-11-20 18:34                                   ` Richard Pinkall-Pollei
2001-11-20 18:43                                   ` Matthew Heaney
2001-11-20 20:37                                     ` Mark Lundquist
2001-11-22 11:49                                     ` David Crocker
2001-11-20 20:35                                   ` Mark Lundquist
2001-11-22 11:42                                     ` David Crocker
2001-11-19 19:30                           ` 'withing' problem Preben Randhol
2001-11-03  8:26 ` Simon Wright
2001-11-03  8:38 ` Simon Wright
2001-11-05  9:54   ` David Crocker
2001-11-05 18:04     ` tmoran
2001-11-06 15:29       ` David Crocker
2001-11-07  0:38         ` tmoran
2001-11-07 10:11           ` David Crocker
2001-11-07 18:59             ` tmoran
2001-11-08 11:38               ` David Crocker
2001-11-10 18:03                 ` Simon Wright
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox