namespace InterfacePropertyEx
{
// ์ธํฐํ์ด์ค ํ๋กํผํฐ
interface IKeyValue
{
// ์ธํฐํ์ด์ค์์ ์๋ ํ๋กํผํฐ๋ C# ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ๊ตฌํํด์ฃผ์ง ์๋๋ค.
// ๋ฐ๋ผ์, ํด๋น ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ๋ ํด๋์ค์์ ๊ตฌํํด์ฃผ์ด์ผ ํ๋ค.
string Key { get; set; }
string Value { get; set; }
}
class KeyValue : IKeyValue
{
public string Key { get; set; }
public string Value { get; set; }
// ์ด๋ ๊ฒ ์์๋ฐ๋ ํด๋์ค์์ ์๋ํ๋กํผํฐ๋ฅผ ์ด์ฉํด์ ๊ตฌํํ ์ ์๋ค.
// IKeyValue์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ฃผ๊ณ ์์(์ฆ, ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ํ๋กํผํฐ๋ฅผ ๊ตฌํํด์ค)
}
class Program
{
static void Main(string[] args)
{
KeyValue kv = new KeyValue()
{
Key = "์ด๋ฑํ๊ต",
Value = "์ฐ์ฒ"
};
Console.WriteLine($"{kv.Value} {kv.Key}");
}
}
}
Output
์ฐ์ฒ ์ด๋ฑํ๊ต
- ์ธํฐํ์ด์ค(Interface)์๋ ๊ตฌํ๋ถ๊ฐ ์กด์ฌํ์ง ์๋๋ค.
- ์์ ์ฝ๋์ ๊ฐ์ด ์ธํฐํ์ด์ค ๋ด๋ถ์์ ์๋ ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๊ฒ๋๋ฉด ๊ตฌํ๋ถ๊ฐ ์กด์ฌํ์ง ์๋๊ฒ์์ ์๊ณ , ์์๋ฐ๋ ํด๋์ค์์ ๊ตฌํ๋ถ๋ฅผ ์ ์ํด์ผํ๋ค.
- ์ฝ๋์์
IKeyValue
๋ฅผ ์์ํ KeyValue
์์๋ ์๋ ํ๋กํผํฐ๋ฅผ ์ด์ฉํ๊ณ ์์ผ๋ฉฐ, ํด๋น ํด๋์ค ๋ด ์๋ํ๋กํผํฐ๋ฅผ ์ด์ฉํด IKeyValue
์ธํฐํ์ด์ค์ ์๋ ํ๋กํผํฐ๋ค์ ๊ตฌํํด์ฃผ๊ณ ์๋ ๊ฒ์ด๋ค.