Doğrulama amacıyla Specification kalıbını kullanmayı düşünüyorum. Zor olan şey, kullanıcıya bazı özelliklerin neden karşılanmadığını anlatmaktır. Ne Specification.IsSatisfiedBy()
sadece bool
değerini değil, aynı zamanda başarısızlık nedenini de döndürecektir. Böyle bir şey olacaktır:DDD Doğrulama için desen desenini kullanma
interface ISpecification<T>
{
CheckResult IsSatisfiedBy(T candidate);
}
CheckResult
olduğu:
class CheckResult
{
public bool IsSatisfied { get; }
public string FailureReason { get; }
}
eser Fowler & Evans Amaç tam olarak memnun değildi neyi açıklama sağlamaktır Kısmen Memnun şartnamenin bir kavram vardır. Ancak, bu belgede, Adayı Adayı tarafından sağlanamayan Spesifikasyonu döndüren kalanıUsatisfiedBy ek yöntemi olarak uygulanır.
Soru şu: Doğrulama için belirtimi kullanırken, belirli bir Spesifikasyonun sağlanamadığı kullanıcıya nasıl geri bildirim sağlanabilir? Yukarıda sunduğum çözüm iyi mi?
Her şeyden önce, Şartname'nin gitmenin yolu olduğuna gerçekten emin misiniz? Yani, her bir özellik bir modelin geçerli olabileceği veya geçerli olmadığı bağlamı biliyor mu? Alanın neye benzediğini bilmediğimden çok fazla şey söyleyemem. Bazı basit doğrulama için bunun iyi olduğunu düşünüyorum, ancak DataAnnotation doğrulama öznitelikleri şu anda yapıyor. – MikeSW