CSLA에서 팩토리 패턴을 구현하고 싶습니다. 추상적 추상 클래스 또는 추상화를위한 인터페이스를 사용할 수 있습니다. 필자는 추상 클래스를 사용하기로 결정했다. 왜냐하면 저장소에 저장, 저장소에서 검색 및 레코드 삭제와 같은 일반적인 기능이 있기 때문이다. 또한 구현 된 모든 객체에 적용되는 일부 속성.CSLA.NET을 사용하여 팩토리 패턴 구현
C#은 한 클래스의 상속만을 허용하므로 BusinessBase 또는 추상 클래스를 사용할 수 있습니다. 또한 구체적인 유형에 비즈니스 규칙을 적용하고 싶습니다. 이것이 CSLA로 어떻게 할 수 있습니까?
내가 아래에 나열한 것을 수행하면 추상 클래스와 구체적인 클래스의 규칙이 모두 해지됩니까?
일부 코드 ...
추상 클래스 :
public class Form : BusinessBase<Form> {
private static PropertyInfo<string> FormNameProperty = RegisterProperty<string>(c => c.FormName);
public string FormName
{
get { return GetProperty(FormNameProperty); }
}
public abstract void LoadContent();
protected override void AddBusinessRules()
{
// business rules that are commmon for all implementations
}
}
콘크리트 구현 :
public class FormA : Form {
private static PropertyInfo<string> FirstNameProperty = RegisterProperty<string>(c => c.FirstName);
public string FirstName
{
get { return GetProperty(FirstNameProperty); }
}
public override void LoadContent(){
// some custom code
}
protected override void AddBusinessRules()
{
// business rules that only apply to this class
}
}
공장 :
public static class FormFactory{
public static Form GetForm(string formanmae) {
Type formType = GetFormType(formName);
if(formType == null)
return null;
var form = Activator.CreateInstance(formType) as ReferralForm;
return form;
}
}