Birçok Builder Pattern
örnek Builder
, oluşturduğu nesnenin iç sınıfını oluşturur.
Bu ne Builder
inşa ettiğini gösterir, çünkü biraz mantıklı . Ancak, statik olarak yazılmış bir dilde neyin Builder
inşa edildiğini biliyoruz .
Öte yandan Builder
bir iç sınıftır, sen gerektiğini hangi sınıf bilmek Builder
içini bakmadan oluşturur Builder
.
Ayrıca, kurucuyu iç sınıf olarak bulundurmak, dış sınıf tarafından referans alınabileceği için ithalat sayısını azaltır - eğer bunu umursuyorsanız.
Ve sonra Builder
aynı paketin içinde olduğu, ancak bir iç sınıfın olmadığı pratik örnekler var StringBuilder
. Bunu biliyor Builder
gereken bir inşa String
o kadar adlandırılır çünkü.
Builder
Bir iç sınıf yapmak için düşünebildiğim tek iyi sebep , sınıfın Builder
adını bilmeden ya da adlandırma kurallarına güvenmeden ne olduğunu bildiğinizdir . Örneğin, eğer StringBuilder
bir iç sınıf String
olsaydım, muhtemelen benim yaptığımdan (spekülatif) daha erken varolduğunu bilseydim.
Builder
İç sınıfı yapmanın başka nedenleri var mı, yoksa sadece tercih ve ritüele mi düşüyor?