Bir meslektaşım, bir temel sınıf veya bir arayüz oluşturmak arasında seçim yapmak için bir kural belirledi.
Diyor:
Uygulamak üzere olduğunuz her yeni yöntemi düşünün. Her biri için şunu düşünün: Bu yöntem , herhangi bir değişiklik yapılmaksızın, tam olarak bu formda birden fazla sınıf tarafından uygulanacak mı? Cevap "evet" ise, bir temel sınıf oluşturun. Diğer her durumda bir arayüz oluşturun.
Örneğin:
Sınıfları düşünün
catvedogsınıf uzanır,mammalve tek bir yöntem vardırpet(). Daha sonraalligator, hiçbir şeyi genişletmeyen ve tek bir yöntemi olan sınıfı ekliyoruzslither().Şimdi,
eat()hepsine bir yöntem eklemek istiyoruz .Uygulanması halinde
eat()yöntemi için tam olarak aynı olacaktırcat,dogvealligatorbiz bir temel sınıf (diyelim diyelim ki, oluşturmalıdıranimalhangi uygular bu yöntemi).Ancak, uygulanması
alligatoren ufak bir şekilde farklılık gösteriyorsa, birIEatarayüz oluşturmalı ve onu yapmalımammalvealligatoruygulamalıyız.
Bu yöntemin tüm vakaları kapsadığı konusunda ısrar ediyor, ancak bana göre aşırı basitleştirme gibi görünüyor.
Bu genel kurallara uymaya değer mi?
is ave arayüzlerin acts likeya da olduğunu öğretti is. Yani bir köpek is amemelisi ve acts likebir yiyen. Bu bize memelinin bir sınıf ve yiyicinin bir arayüz olması gerektiğini söylerdi. Her zaman çok yardımcı bir rehber olmuştur. Sidenote: bir örnek isolacağını The cake is eatableya The book is writable.
alligator'nin uygulanması,eatelbette, kabul ettiğicatvedogparametre olarak farklı olduğu yönündedir.