适配器模式
2010-08-26 22:12 Clingingboy 阅读(401) 评论(0) 编辑 收藏 举报适配器的意图是复用现有对象的功能. 这个模式用的还是比较多的.
// Existing way requests are implemented class Adaptee { // Provide full precision public double SpecificRequest (double a, double b) { return a/b; } } // Required standard for requests interface ITarget { // Rough estimate required string Request (int i); } // Implementing the required standard via the Adaptee class Adapter : Adaptee, ITarget { public string Request (int i) { return "Rough estimate is " + (int) Math.Round(SpecificRequest (i,3)); } }
重新定义了一个Request方法,然后调用基类方法SpecificRequest (也可以不用继承,从内部实例化对象也可以,具体可灵活运用)
static void Main () { // Showing the Adapteee in stand-alone mode Adaptee first = new Adaptee(); Console.Write("Before the new standard\nPrecise reading: "); Console.WriteLine(first.SpecificRequest(5,3)); // What the client really wants ITarget second = new Adapter(); Console.WriteLine("\nMoving to the new standard"); Console.WriteLine(second.Request(5)); Console.ReadKey(); }