在不同的公司中都會有需要新的成員與新的工作,因此將這兩件是寫在介面中,讓不同的Class繼承介面,因而可以使用這兩個功能,但因為不同公司會有不同方式創造新的成員與工作,因此實作方面又可以依造不同公司來實作。
範例中INewThings為介面裡面包含CreateNewMember與CreateNewWork兩項方法
透過Main宣告介面後依照需求,不同的class繼承後可有不同的實作。
class Program
{
static void Main(string[] args)
{
INewThings a = new Company1();
var result = a.CreateNewMember(2);
Console.WriteLine(result);
Console.ReadLine();
}
}
public interface INewThings
{
string CreateNewMember(int ty);
string CreateNewWork();
};
public class Company1 : INewThings
{
string INewThings.CreateNewMember(int ty)
{
if(ty==1)
{
return "Account";
}
else if (ty == 2)
{
return "Engineer";
}
else
{
return "Boss";
}
}
string INewThings.CreateNewWork()
{
return "Developing C#";
}
}
public class Company2 : INewThings
{
string INewThings.CreateNewMember(int ty)
{
return "painter";
}
string INewThings.CreateNewWork()
{
return "doing Art thing";
}
}
另外在練習另一種寫法,Class裡的方法參數為Interface,透過傳入DTO資料做判斷並回傳字串public interface INewThings { string CreateNewMember(PersonInfo person); }; public class PersonInfo { public string Name { get; set; } public int age { get; set; } } public class Company : INewThings { //Interface實作 string INewThings.CreateNewMember(PersonInfo PI) { if(PI.age <18) { return "too young to work"; } else if(PI.age >80) { return "too old to work"; } else { return PI.Name + "-" + PI.age; } } public string humanresource(INewThings NewThings, PersonInfo Newguy) { return NewThings.CreateNewMember(Newguy); }
沒有留言:
張貼留言