Bir sınıfın birden fazla kurucu metodu (constructor) varsa, kod tekrarları da oluşacak demektir. Çünkü kurucu metodların fazla olması, parametrelerin fazla olmasını gerektirir. Dolayısıyla sınıfın üyelerinin tekrarlı bir şeklide atama işlemine tabi tutulması demektir. Bu kod tekrarlarının nasıl oluştuğunu şu örnekle inceleyebiliriz.
public class PersonManager { private string firstName; private string lastName; private string socialSecurityNumber; private string age; public PersonManager(string firstName, string lastName) { this.firstName = firstName; this.lastName = lastName; } public PersonManager(string firstName, string lastName, string socialSecurityNumber) { this.firstName = firstName; this.lastName = lastName; this.socialSecurityNumber = socialSecurityNumber; } public PersonManager(string firstName, string lastName,string age, string socialSecurityNumber) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.socialSecurityNumber = socialSecurityNumber; } }
Private erişimli field’lar her kurucu metodda tekrarlı bir şekilde işleme sokulmuş. Bunun önüne şu şeklide geçmek mümkündür.
public PersonManager(string firstName, string lastName) :this(firstName,lastName,"Unknown", "Unknown") { } public PersonManager(string firstName, string lastName, string socialSecurityNumber) : this(firstName, lastName, socialSecurityNumber, "Unknown") { } public PersonManager(string firstName, string lastName, string socialSecurityNumber, string age) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.socialSecurityNumber = socialSecurityNumber; }
Bu şekilde kodumuzu tekrarlı yapıdan arındırdık.
Tekrar görüşmek üzere.