İki temel sınıfım var Operationve Trigger. Her birinin belirli işlem veya tetikleyici türlerinde uzmanlaşmış bir dizi alt sınıfı vardır. A Triggerbelirli bir şeyi tetikleyebilir Operation. Iken Operationbelirli bir tarafından tetiklenebilir Trigger.
OperationBelirli 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 Triggerve bir koleksiyon tüketecek Operation. A Triggerve an arasında bir eşlemenin nerede olduğunu bilmek gerekir Operation. Rapor oluşturmak için bu bilgileri kullanacaktır.
