İki temel sınıfım var Operation
ve Trigger
. Her birinin belirli işlem veya tetikleyici türlerinde uzmanlaşmış bir dizi alt sınıfı vardır. A Trigger
belirli bir şeyi tetikleyebilir Operation
. Iken Operation
belirli bir tarafından tetiklenebilir Trigger
.
Operation
Belirli bir Trigger
(veya tam tersi) verilen bir eşler kodunu yazmak gerekir , ama nereye koymak emin değilim.
Bu durumda kod açıkça bir sınıfa veya diğer sınıfa ait değildir. Tek sorumluluk ilkesi açısından, kodun nereye ait olması gerektiğinden emin değilim.
Hepsi işe yarayacak üç seçenek görebiliyorum. 1 ve 2 sadece bir anlambilim seçeneği gibi görünse de, 3 tamamen farklı bir yaklaşımı temsil eder.
- Tetikleyicide, örn
bool Triggers(Operation o)
. - Operasyon hakkında, ör
bool TriggeredBy(Trigger t)
. - Haritalamayı yöneten tamamen yeni bir sınıfta, ör
bool MappingExists(Trigger t, Operation o)
.
Tek bir sorumluluk ilkesine göre paylaşılan harita kodunun nereye yerleştirileceğine nasıl karar vermeliyim?
Sorumluluk paylaşıldığında tek sorumluluk nasıl yönetilir?
Düzenle 1.
Yani asıl kod şuna benzer. Tüm özellikleri vardır ya bir string
, Guid
, collection<string>
, veya enum
. Temelde sadece küçük veri parçalarını temsil ederler.
Düzenle 2.
Bool dönüş tipinin nedeni. Başka bir sınıf bir koleksiyon Trigger
ve bir koleksiyon tüketecek Operation
. A Trigger
ve an arasında bir eşlemenin nerede olduğunu bilmek gerekir Operation
. Rapor oluşturmak için bu bilgileri kullanacaktır.