Bir Sınıf tasarlarken biraz sorun yaşıyorum.Çok özellikli bir nesne nasıl oluşturulur?
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');
Ama iyi müşterim daha özelliklere sahiptir: Müşteri Class oluşturma basit görünüyor, doğum tarihi nerede yaşadığını vs vs
ben bir kurucu ile sona Görüldüğü üzereTCustomer = 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;
bir sürü argümanla. Bir çok özelliği olan bir nesneyi inşa etmenin daha iyi bir yolu nedir?
benim ilk thoght yalnızca sınıf örneği oluşturma korumak * esansiyel * özelliklere sahip sınıf oluşturmaktır. örneğin sizin durumunuzda benzersiz bir 'Kullanıcı Kimliği 'olabilir. – kobik
Durumunuzu, yeni bir DB kaydı ('insert') oluşturmaya benzetebilirsiniz. Hangi özelliklerin * gerekli olduğunu * düşünün * (bunları yapıcı argümanlarında kullanın) ve hangi özelliklerin varsayılanları var (bunları sınıf kurucunuzun içinde başlatın). – kobik
, çiftinin bir dizisini alıp RTTI kullanarak, TCustomer Sınıfını ayrıştırır ve parametrelerden alan değerlerini ayarlarsınız, yani TMyCustomer.Create ([AProp ('FirstName', 'Joe'), AProp ('LastName', 'Doe'), ...]); –
ComputerSaysNo