당신은 당신이 모든 다른 사람이 상속되는 기본 클래스를 가지고 가정 같은 것을 할 수 있습니다. 기본 클래스 만 internalSave 함수를 알게되고 모든 상속 된 클래스는 save를 호출하고 자동으로 유효성을 검사합니다.
사용자의 필요에 맞게 저장 함수에서 구성원 액세스 수정 자 (protected)를 수정하지만 해당 함수를 호출하지 않고 유효성 검사를 생략하기 위해 internalSave를 비공개로 둡니다.
protected bool save(){
validate(); //Assuming this throws an exception to inform it is not valid
return internalSave();
}
private bool internalSave(){
saveRecord();
return true;
}
이 아직 수정할 수없는 존재하기 때문에 당신이 기본 클래스를 가질 수없는 경우 대신
public static class BaseClassNameExtensions
{
public static bool ValidatedSave(this BaseClassName obj)
{
obj.validate(); //again assuming it throws an exception
return obj.save();
}
}
아니,하지 않는 한이 없다, 당신은 또한 확장 방법을 사용하여 볼 수 있었다 너는 하나 만들어. –
그 효과를 얻을 수는 있지만 좀 더 복잡합니다 ... 대리인 및 이벤트를 사용하는 https://en.wikipedia.org/wiki/Interceptor_pattern – DarkSquirrel42
이 가능합니다. –