Üzgünüm ama diğer 'evet yapabilirsin' cevaplarının çoğuna katılmam gerekecek ve şunu söyleyeceğim:
Bir kamu yöntemini diğerinden çağıran bir sınıftan vazgeçirebilirim
Bu uygulamayla ilgili birkaç potansiyel sorun var.
1: Kalıtımsal sınıfta sonsuz döngü
Bu nedenle, temel sınıfınız method2'den method1'i çağırır, ancak o zaman siz veya başka biri ondan devralır ve method1'i metod2 olarak adlandırılan yeni bir yöntemle gizler.
2: Olaylar, Kayıt vb.
Örneğin, '1 eklendi!' etkinliğini başlatan bir Add1 yöntemi var. Muhtemelen Add10 yönteminin bu olayı arttırmasını, bir kayıt defterine yazmasını veya her neyse, on defa olmasını istemiyorum.
3: diş açma ve diğer kilitlenmeler
InsertComplexData bir db bağlantısı açar, bir işlem başlatır, bir tabloyu kilitler, Sonra InsertSimpleData'yı çağırır, bir bağlantı açar, bir işlemi başlatır, masanın kilidinin açılmasını bekler ....
Daha fazla neden olduğuna eminim, 'yöntem1'i düzenler ve yöntem 2'nin farklı davranmaya başlamasına şaşırırsın' konusuna değinen başka bir cevap daha vardır.
Genel olarak, kodu paylaşan iki genel yönteminiz varsa, ikisini de diğer birini çağırmak yerine özel bir yöntemle çağırmak daha iyidir.
Düzenle ----
OP'deki spesifik durum üzerinde genişleyelim.
Çok fazla ayrıntıya sahip değiliz, ancak ReverseData'nın ScheduleTransmission yönteminin yanı sıra bir tür olay işleyicisi tarafından çağrıldığını biliyoruz.
Tersine çevirilen verilerin aynı zamanda nesnenin iç durumunu da değiştirdiğini varsayıyorum.
Bu durum göz önüne alındığında, konu güvenliğinin önemli olacağını düşünüyorum ve bu nedenle uygulamaya karşı üçüncü itirazım geçerli.
ReverseData iş parçacığını güvenli hale getirmek için bir kilit ekleyebilirsiniz. Ancak ScheduleTransmission'ın aynı zamanda güvenli bir iş parçacığı olması gerekiyorsa, aynı kilidi paylaşmak isteyeceksiniz.
Bunu yapmanın en kolay yolu, ReverseData kodunu özel bir yönteme taşımak ve her iki genel yöntemin de çağırmasını sağlamaktır. Daha sonra lock deyimini Genel Yöntemler kısmına koyabilir ve bir kilit nesnesini paylaşabilirsiniz.
Belli ki "bunun asla olmayacağını" iddia edebilirsin. veya "Kilidi başka bir şekilde programlayabilirim" fakat iyi kodlama uygulamasının amacı kodunuzu ilk önce iyi yapılandırmaktır.
Akademik açıdan şunu söyleyebilirim ki, bu katı L'yi ihlal ediyor. Kamu yöntemleri sadece kamuya açık olmaktan daha fazlasıdır. Ayrıca mirasçıları tarafından değiştirilebilirler. Kodunuz değişiklik için kapatılmalıdır; bu, hem genel hem de korunan yöntemlerde ne iş yaptığınızı düşünmeniz gerektiği anlamına gelir.
Bir tane daha var: Siz de DDD'yi potansiyel olarak ihlal ediyorsunuz. Nesneniz bir etki alanı nesnesiyse, genel yöntemleri, işletme için bir anlam ifade eden Etki Alanı terimleri olmalıdır. Bu durumda, 'bir düzine yumurta al', bu şekilde başlasa bile, '12 kez 1 yumurta al' ile aynıdır.