關於 C# interface的好處 |
發表日期 : 10/22/2016 12:05:36 PM |
Interface 故名思義就是介面,你設計好介面,對外公開,外面所認識的就是這個介面,至於內部怎麼實作,就被包裝起來了,之後實作方法改變,或是增加不同的實作法,外面的使用者都不受影響。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing; namespace ConsoleApplication1 { interface IUsbMouse { bool Connect(); System.Drawing.Point GetPosition(); } public class LogitechMouse : IUsbMouse { public bool Connect() { // 實作連接方式 return true; } public Point GetPosition() { // 實作取得滑鼠座標 return new Point(0, 0); } } public class MicrosoftMouse : IUsbMouse { public bool Connect() { // 實作連接方式 return true; } public Point GetPosition() { // 實作取得滑鼠座標 return new Point(0, 0); } } class Program { static void Main(string[] args) { IUsbMouse MyMouse1 = new LogitechMouse(); IUsbMouse MyMouse2 = new MicrosoftMouse(); UseMouse(MyMouse1); // 換滑鼠 UseMouse(MyMouse2); } // 不用在乎使用哪一牌的滑鼠, 不論滑鼠怎麼變,這個Method都不用改 static void UseMouse(IUsbMouse mouse) { if (mouse.Connect()) { Point p1 = mouse.GetPosition(); Console.WriteLine("X: {0}, Y: {1}", p1.X, p1.Y); } } } } |
分類 : 心得 作者 : 莊英澔 |