Birçok Builder Patternörnek Builder, oluşturduğu nesnenin iç sınıfını oluşturur.
Bu ne Builderinşa ettiğini gösterir, çünkü biraz mantıklı . Ancak, statik olarak yazılmış bir dilde neyin Builderinşa edildiğini biliyoruz .
Öte yandan Builderbir iç sınıftır, sen gerektiğini hangi sınıf bilmek Builderiç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 Builderaynı paketin içinde olduğu, ancak bir iç sınıfın olmadığı pratik örnekler var StringBuilder. Bunu biliyor Builder gereken bir inşa Stringo kadar adlandırılır çünkü.
BuilderBir iç sınıf yapmak için düşünebildiğim tek iyi sebep , sınıfın Builderadını bilmeden ya da adlandırma kurallarına güvenmeden ne olduğunu bildiğinizdir . Örneğin, eğer StringBuilderbir iç sınıf Stringolsaydı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?