關於 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);
}
}
}
}
|
|
分類 : 心得 作者 : 莊英澔 |