interface 사용
using System;
using System.IO;
namespace Interface
{
interface ILogger
{
void WriteLog(string message);
}
class ConsoleLogger : ILogger
{
public void WriteLog(string message)
{
Console.WriteLine("{0},{1}", DateTime.Now.ToLocalTime(), message);
}
}
class FileLogger : ILogger
{
private StreamWriter writer;
public FileLogger(string path)
{
writer = File.CreateText(path);
writer.AutoFlush = true;
}
public void WriteLog(string message)
{
writer.WriteLine("{0},{1}", DateTime.Now.ToShortTimeString(), message);
}
}
class ClimateMonitor
{
private ILogger logger;
public ClimateMonitor(ILogger logger)
{
this.logger = logger;
}
public void start()
{
while (true)
{
Console.WriteLine("온도를 입력해주세요 : ");
string temperature = Console.ReadLine();
if (temperature == "")
{
break;
}
logger.WriteLog("현재온도 : " + temperature);
}
}
}
class MainApp
{
static void Main(string[] args)
{
ClimateMonitor monitor = new ClimateMonitor(new FileLogger("MyLog.txt"));
monitor.start();
}
}
}
'개발 Programming > C#' 카테고리의 다른 글
게터세터(메소드) ->프로퍼티 (0) | 2015.04.23 |
---|---|
추상 클래스 (0) | 2015.04.23 |
확장 메소드 (0) | 2015.04.23 |
NestedClass (0) | 2015.04.23 |
오버라이딩 봉인하기 (0) | 2015.04.23 |