私はデザインパターンの初心者です。
開発チームのさまざまなメンバーが行った開発作業を追跡する C# アプリケーション (つまり、プロジェクト トラッカー) を開発しているとします。
私は戦略パターンに触発されようとしています。
したがって、次のようにクラスとインターフェイスを設計しています。
interface IEmployee
{
void Retires();
void TakesLeave();
}
interface IResponsible
{
void AcknowledgeJobAccomplish();
void CompletesJob();
}
interface ILeader
{
void FormsTeam();
void RecruitsNewMember();
void KicksOutMemberFromTheTeam();
void AssignsJob();
void UnassignsJob();
void QueriesTheJobStatus();
void ChangesTheJobStatus();
}
interface IPersistent
{
void Save();
void Update();
void Delete();
}
abstract class TeamMember : IEmployee, IResponsible, IPersistent
{
string Name;
}
class Programmer : TeamMember
{
}
class LeadProgrammer : Programmer, ILeader
{
ProgrammerCollection associateProgrammers;
}
class ProjectManager : TeamMember, ILeader
{
TeamMemberCollection teamMembers;
}
abstract class Tester : TeamMember
{
}
class UnitTester : Tester
{
}
class QC : Tester
{
}
class SupportStaff : TeamMember
{
}
このデザインを改善するにはどうすればよいですか?