阳光总在风雨后

适配器模式

/***********************************************************
 * 适配器模式 (参照李会军老师的ˇ〃ˇ)
 *描述:
 *如下代码所示, 原接口IMyInterFace函数Write在己开发完成的代码中大量的用到,
 * 但由于业务有变,而要通过IMyInterFace接口调用WriteFactory函数,
 * 如果大批量的将Write修改成WriteFactory的话,工作量是疯狂的.
 * 这时,适配器模式就有他的优势了
 ***********************************************************/

        
        public  interface IMyInterFace
        {
            void Write();
        }

        public class EntLog : IMyInterFace
        {
            public void Write()
            {
                Console.Write("EntLog was called!");
            }
        }

        public abstract  class logFactory
        {
            public abstract void WriteFactory();
        }

        public class FileLog : logFactory
        {
            public override void WriteFactory()
            {
                Console.Write("FileLog_WriteFactory() was called");
                Console.ReadLine();
            }
        }

        public class EventLog : logFactory
        {
            public override void WriteFactory()
            {
                Console.Write("EventLog_WriteFactory() was called");
                Console.ReadLine();
            }
        }

        public class FileLog_Adapter:FileLog,IMyInterFace
        {
            public void Write()
            {
                WriteFactory();
            }
        }

        public class EventLog_Adapter : EventLog, IMyInterFace
        {
            public void Write()
            {
               WriteFactory();
            }
        }

        static void Main(string[] args)
        {
            //原调用方法
            //IMyInterFace IMY = new EntLog();
            //IMY.Write();

            //修改后调用方法
            IMyInterFace IMY = new EventLog_Adapter();
            IMY.Write();
        }
    }


/***********************************************************
 * "适配器模式" 和"抽象工厂模式"似乎异曲同工
 ***********************************************************/

posted @ 2008-04-19 21:28  小B  阅读(203)  评论(0)    收藏  举报