interface 사용

개발 Programming/C#|2015. 4. 23. 15:56

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

댓글()