...
당신은 요구 사항 개체를 받아들이는 과정 오브젝트를 가지고 있고 OnCompleteActions는 생성자에서 객체 ... 부여 다른 코스를 모두 빌드하는 방법을 알게되지만 ...
코스가 업데이트 될 때마다 요구 사항이 충족 될 때 요구 사항이 충족되는지 확인합니다. 요구 사항을 충족하면 자체를 OnCompleteActions에 전달합니다.
private void OnCourseUpdate()
{
if (this._Requirements.AreMetBy(this))
{
this._OnCompleteActions.Execute(this);
}
}
Requiremetns 객체를 사용하면 원하는 작업 ... AreMetBy 방법 간단한 있는지 확인하려면 목록에서 IRequirements 및 모든 검사를 열거 만드는 과정에 따라 미세 조정할 수 IRequirement의 총 목록에 불과하다 당신의 이 과정은 ...
class CourseHoursRequirement : IRequirement
{
public CourseHoursRequirement(int minimumHours)
{...}
public bool IsMetBy(Course course)
{
return course.NumberHours >= this._MInimumHours
}
}
동일한 ID
interface IRequirement
{
public bool IsMetBy(Course course);
}
는 그런 다음 IRequirement을 구현하는 다른 요구 사항의 모든 종류를 가질 수 ... 그들 모두를 만족 OnCompleteActions에는 각각을 실행하는 IOnCompleteAction 중 하나 이상의 목록이 있습니다. 전의.CreateCertificateOnCompleteAction, SendEmailOnCompleteAction 등 그런 다음 그들은 모두 구현하고 있기 때문에 당신이가는대로 쉽게 새로운 요구 사항을 추가 할 수 등 MinimumHourRequirement하는 PassedAllTestRequirement을 것 과정을 구축 할 수 있습니다 자신의 수업 시간에 가능한 각 요구 사항을 캡슐화함으로써
같은 인터페이스. 최소한 minimumHours와 같이 몇 가지 제한 속성을 추가해야하지만 실제 작업은 IsMetBy() 메서드 내부에서 수행됩니다.
행운을 빈다!
이것은 숙제와 비슷합니다. 그렇다면 여기에 묻는 것으로 속임수로하지 말고 직접 해보십시오 .-) – lothar