AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Problem mit einfügen einer function in procedure

Problem mit einfügen einer function in procedure

Ein Thema von wolfaa · begonnen am 14. Jan 2011 · letzter Beitrag vom 14. Jan 2011
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: Problem mit einfügen einer function in procedure

  Alt 14. Jan 2011, 16:12
Oder hier als abstraktes Beispiel drei Methoden zum Berechnen:
Delphi-Quellcode:
unit uFoo;

interface

type
  // Der Preis kann von beliebiger Stelle geändert werden
  TCalcClass1 = class
  private
    FPreis : Extended;
    procedure SetPreis( const Value : Extended );

  public
    property Preis : Extended read FPreis write SetPreis;
    function Calc( Menge : Extended ) : Extended;
  end;

  // Der Preis wird bei der Erzeugung festgelegt
  TCalcClass2 = class
  private
    FPreis : Extended;

  public
    property Preis : Extended read FPreis;
    function Calc( Menge : Extended ) : Extended;
    constructor Create( Preis : Extended );
  end;

  // Der Preis muss bei jeder Berechnung mit angegeben werden
function Calc( Menge, Preis : Extended ) : Extended;

implementation

function Calc( Menge, Preis : Extended ) : Extended;
  begin
    Result := Menge * Preis;
  end;

{ TCalcClass1 }

function TCalcClass1.Calc( Menge : Extended ) : Extended;
  begin
    Result := Calc( Menge, Preis );
  end;

procedure TCalcClass1.SetPreis( const Value : Extended );
  begin
    FPreis := Value;
  end;

{ TCalcClass2 }

function TCalcClass2.Calc( Menge : Extended ) : Extended;
  begin
    Result := Calc( Menge, Preis );
  end;

constructor TCalcClass2.Create( Preis : Extended );
  begin
    inherited Create;
    FPreis := Preis;
  end;

end.
Für welches Modell der Umsetzung man sich entscheidet, hängt davon ab, was man erreichen möchte.
Ist bei der Berechnung der Preis auch an dem Ort bekannt, von wo aus die Berechnung angestossen wird, dann bietet sich eine einfache function Calc( Menge, Preis : Extended ):Extended; an.

Ist der Preis nur einer völlig anderen Stelle bekannt und sind dort Änderungen zu erwarten (erlaubt), dann wie TCalcClass1 .

Darf der Preis sich nicht ändern, dann wie TCalcClass2 .

Werden diese Berechnungsklassen jetzt weiterverwendet, so ist durch das Design schon klar, wie diese verwendet werden dürfen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (14. Jan 2011 um 16:21 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz