面向接口编程(Adapter)
这几天不知道为什么 ,突然想琢磨接口技术,接触了接口才知道它的强大.
下面的这小段代码 这里引入一个设计模式,“Adapter”。它的作用就如现实中的适配器一样,把接口不一致的两个插件接合起来。其实很简单.
using System;
using System.Collections.Generic;
using System.Text;
namespace InterfaceExample //接口果然强大!!.
{
public interface IMobileStorage
{
void read();
void write();
}
public class FlashDisk : IMobileStorage
{
public void read()
{
Console.WriteLine("这是U盘--读取--数据正常");
}
public void write()
{
Console.WriteLine("这是U盘--写入--数据正常");
}
}
public class MP3Player : IMobileStorage
{
public void read()
{
Console.WriteLine("这是MP3--读取--数据正常");
}
public void write()
{
Console.WriteLine("这是MP3--写入--数据正常");
}
public void playerMusic()
{
Console.WriteLine("我除了读写数据,还可以播放音乐噢!");
}
}
public class MobileHardDisk : IMobileStorage
{
public void read()
{
Console.WriteLine("这是硬盘--读取--数据正常");
}
public void write()
{
Console.WriteLine("这是硬盘--写入--数据正常");
}
}
public class NewMobileStorage : IMobileStorage
{
public void read()
{
Console.WriteLine("新设备读入正常");
}
public void write()
{
Console.WriteLine("新设备写入正常");
}
}
public class SuperStorageAdapter:IMobileStorage
{
private SuperStorage superStorage;
public SuperStorage SuperStorage
{
get { return superStorage; }
set { superStorage = value; }
}
public void read()
{
this.SuperStorage.rd();
}
public void write()
{
this.SuperStorage.wt();
}
}
public class SuperStorage : SuperStorageAdapter
{
public void rd()
{
Console.WriteLine("New新设备读入正常");
}
public void wt()
{
Console.WriteLine("New新设备写入正常");
}
}
public class Computer
{
private IMobileStorage _USBdrive;
public IMobileStorage USBdrive
{
get { return _USBdrive; }
set { _USBdrive = value; }
}
public Computer()
{
}
public Computer(IMobileStorage USBdrive)
{
this.USBdrive = USBdrive;
}
public void readData()
{
this.USBdrive.read();
}
public void writeData()
{
this.USBdrive.write();
}
}
class Program
{
static void Main(string[] args)
{
Computer computer = new Computer();
IMobileStorage mp3Player = new MP3Player();
IMobileStorage flashDisk = new FlashDisk();
IMobileStorage mobileHaedDisk = new MobileHardDisk();
IMobileStorage newMobileStorage = new NewMobileStorage();
SuperStorageAdapter superStorageAdapter = new SuperStorageAdapter();
SuperStorage superStorage = new SuperStorage();
superStorageAdapter.SuperStorage = superStorage;
computer.USBdrive = superStorageAdapter;
computer.readData();
computer.writeData();
computer.USBdrive = mp3Player;
computer.writeData();
computer.readData();
MP3Player mp3 = new MP3Player();
mp3.playerMusic();
computer.USBdrive = mobileHaedDisk;
computer.readData();
computer.writeData();
computer.USBdrive = flashDisk;
computer.writeData();
computer.readData();
computer.USBdrive = newMobileStorage;
computer.writeData();
computer.readData();
}
}
}