is-Logo Objektorientierte Programmierung (OOP)
M-V-C Implementierung - Observer Pattern Design

S. Spolwig


[Home | Programmiersprachen | Delphi]
 

unit uPerson;
(* ******************************************************************** *)
(* K L A S S E : TPerson                                                *)
(* -------------------------------------------------------------------- *)
(* Version     : 0.9                                           		*)
(* Autor       : S. Spolwig, OSZ-Handel I, 10997 Berlin                 *)
(* Aufgabe     : bildet das Objekt Person ab und berechnet BMI.         *)
(*                                                                      *)
(* Compiler    : DELPHI 7.0                                             *)
(* Aenderung   : V. 0.9  15-AUG-01                                      *)
(*                  1.0  14-OKT-04    erbt von TClassToObserve          *)
(* ******************************************************************** *)

interface
(* ==================================================================== *)
Uses uObservierteKlasse;
type
  TPerson = class(TClassToObserve)
   private
    fName    : string;
    fGroesse : real;
    fGewicht : real;
    procedure SetName (n : string);
    procedure SetGroesse (gr : real);
    procedure SetGewicht (gw : real);

   public
    constructor Create;
    procedure Init;
    property Name    : String read fName write fName;
    property Gewicht : real read fGewicht write fGewicht;
    property Groesse : real read fGroesse write fGroesse;
    function HatBmi  : real;
    procedure Abnehmen;
  end;


implementation
(* ==================================================================== *)

constructor TPerson.Create;
(* -------------------------------------------------------------------- *)
begin
  inherited Create;  // zuerst das geerbte Object erzeugen
  Init;
end;

procedure TPerson.Init;
(* -------------------------------------------------------------------- *)
begin
  Name		:= '';
  Groesse := 0;
  Gewicht := 0;
end;

procedure TPerson.SetName (n : string);
(* -------------------------------------------------------------------- *)
begin
  fName := n;
  fObserverMgr.RunObservers;        // Message absenden
end;

procedure TPerson.SetGroesse (gr : real);
(* -------------------------------------------------------------------- *)
begin
  fGroesse := gr;
  fObserverMgr.RunObservers;            
end;

procedure TPerson.SetGewicht (gw : real);
(* -------------------------------------------------------------------- *)
begin
  fGewicht := gw;
  fObserverMgr.RunObservers;
end;

function TPerson.HatBmi : real;
(* -------------------------------------------------------------------- *)
begin
 result :=  fGewicht / ( fGroesse * fGroesse);
end;

procedure TPerson.Abnehmen;
(* -------------------------------------------------------------------- *)
begin
  fGewicht := fGewicht - 1;
end;

END. // ----- UNIT -------

 


 

©    04. Oktober 2008     Siegfried Spolwig

Seitenanfang