私はクラスを設計するのに苦労します。私は、コンストラクタで終わるご覧のよう生年月日は多くのプロパティを持つオブジェクトを作成する方法は?
などなど、TCustomer = Class
private
{..snip snip..}
public
Property Name : String read FName;
Property IdNumber : String read FIdNumber;
Property Street : String read FStreet;
Property HouseNumber : Integer : read FHouseNumber;
..
..
..
Constructor Create(Number, Name, Street : String; Housenumber : Integer .. .. ..);
end;
を彼が住ん:
TCustomer = Class
private
FIdNumber: String;
FName: String;
procedure SetName(const Value: String);
procedure SetNumber(const Value: String);
public
Property Name : String read FName;
Property IdNumber : String read FIdNumber;
Constructor Create(Number, Name : String);
end;
constructor TCustomer.Create(ANumber, AName: String);
begin
SetName(AName);
SetNumber(ANumber);
end;
MyCustomer := TCustomer.Create('1', 'John Doe');
しかし、よく私の顧客は、より多くのプロパティがあります。 は簡単に見えるカスタマー・クラスの作成します多くの議論があります。多くのプロパティを持つオブジェクトを構築するより良い方法は何ですか?特定のクラスは、多くのフィールドを持つ必要がある場合は、私が唯一の必須パラメータと、私は書き込み可能なプロパティで続けるだろう残りのコンストラクタになるだろう
は私の最初のthoghtは、クラスインスタンス生成を維持*不可欠*プロパティを持つクラスを構築することです。例えばあなたの場合、それはユニークな 'UserID'かもしれません。 – kobik
あなたのケースに似て、新しいDBレコードを作成することができます( 'insert')。どんなプロパティが*必須か(コンストラクタ引数で使用する)と、どのプロパティがデフォルトを持つか(クラスコンストラクタ内で初期化する)を考えます。 – kobik