Adapter适配器设计模式
Posted 叶丶梓轩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Adapter适配器设计模式相关的知识,希望对你有一定的参考价值。
一,Adapter适配器模式是将两个不兼容的类组合在一起使用,如下例子
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace AdapterDesign { //Adapter适配器模式是将两个不兼容的类组合在一起使用。 class Program { static void Main(string[] args) { //正常的接口实现方法 People p = new People(); p.ispeak = new Chinese(); p.Say(); //第一种:Adapter适配器模式实现方法 EnglishAdapter enaAdapter = new EnglishAdapter(); enaAdapter._english = new English(); p.ispeak = enaAdapter; p.Say(); //第二种:Adapter适配器模式实现方法 p.ispeak = new JapanAdapter(); p.Say(); Console.ReadKey(); } } //People依赖于接口ISpeak,在People中定义了一个注入点(ISpeak _iSpeak),属于高层依赖底层 public class People { public People() { } public ISpeak ispeak; public void Say() { this.ispeak.Say(); } } //抽象接口 public interface ISpeak { void Say(); } //接口具体实现依赖于抽象接口 public class Chinese : ISpeak { public void Say() { Console.WriteLine("中文"); } } //第一种:Adapter适配器模式是将两个不兼容的类组合在一起使用,接口具体实现依赖于抽象接口 public class EnglishAdapter : ISpeak { public English _english; public English english { get { return this._english; } set { this._english = value; } } public void Say() { this._english.SayEnglish(); } } public class English { public void SayEnglish() { Console.WriteLine("英文"); } } //第二种:Adapter适配器模式中间类继承实现 public class JapanAdapter : Japan, ISpeak { public void Say() { SayJapan(); } } public class Japan { public void SayJapan() { Console.WriteLine("日文"); } } }
综上:
1》将一个类的接口转换成另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
以上是关于Adapter适配器设计模式的主要内容,如果未能解决你的问题,请参考以下文章
结构型设计模式 Structural Patterns :适配器 Adapter(Python 实现)