C#/이것이 C#이다
38. 인터페이스 예제1, 2 복습
Rainbow🌈Coder
2022. 2. 22. 11:15
728x90
<예제 1>
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 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 ConsoleLogger());
monitor.start();
}
}
}
<출력 결과>
온도를 입력해주세요. :
99.9
2022-02-22 오전 11:03:57 현재 온도 : 99.9
온도를 입력해주세요. :
11.1
2022-02-22 오전 11:04:03 현재 온도 : 11.1
온도를 입력해주세요. :
234
2022-02-22 오전 11:04:05 현재 온도 : 234
온도를 입력해주세요. :
<예제 2>
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.ToShortDateString(),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("0222Test.txt"));
monitor.start();
}
}
}
<출력 결과>
온도를 입력해주세요. :
12.456767
온도를 입력해주세요. :
<메모장 상태 확인>

728x90