/**/
/**************************************************
* 为了更好的理解OOP思想,我们先看一个例子(例1):
*假设要设计一个媒体播放器,应播放器支持音频文件MP3和WAV
**************************************************/
// 例1
namespace OOP思想
... {
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private void btnPlay_Click(object sender, EventArgs e)
...{
PlayMP3(); //播放MP3
//PlayWAV(); //播放WAV
}
public void PlayMP3()
...{
MessageBox.Show("开始播放MP3...");
}
public void PlayWAV()
...{
MessageBox.Show("开始播放WAV...");
}
}
}
// 例2
/**/ /**************************************************
* 自然,你会发现这是相当糟糕的设计,因为它根本没有为未来
* 需要的变更提供最起码的扩展.根据OOP的思想,我们应该把MP3
* 和WAV看成一个独立的对象.请看例2
**************************************************/
namespace OOP思想
... {
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private void btnPlay_Click(object sender, EventArgs e)
...{
IMedia im = new WAV(); //见注1
im.Play();
}
}
interface IMedia //多媒体接口
...{
void Play();
}
public class MP3:IMedia //MP3类
...{
public void Play()
...{
MessageBox.Show("开始播放MP3...");
}
}
public class WAV: IMedia //WAV类
...{
public void Play()
* 为了更好的理解OOP思想,我们先看一个例子(例1):
*假设要设计一个媒体播放器,应播放器支持音频文件MP3和WAV
**************************************************/
// 例1
namespace OOP思想
... {
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private void btnPlay_Click(object sender, EventArgs e)
...{
PlayMP3(); //播放MP3
//PlayWAV(); //播放WAV
}
public void PlayMP3()
...{
MessageBox.Show("开始播放MP3...");
}
public void PlayWAV()
...{
MessageBox.Show("开始播放WAV...");
}
}
}
// 例2
/**/ /**************************************************
* 自然,你会发现这是相当糟糕的设计,因为它根本没有为未来
* 需要的变更提供最起码的扩展.根据OOP的思想,我们应该把MP3
* 和WAV看成一个独立的对象.请看例2
**************************************************/
namespace OOP思想
... {
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private void btnPlay_Click(object sender, EventArgs e)
...{
IMedia im = new WAV(); //见注1
im.Play();
}
}
interface IMedia //多媒体接口
...{
void Play();
}
public class MP3:IMedia //MP3类
...{
public void Play()
...{
MessageBox.Show("开始播放MP3...");
}
}
public class WAV: IMedia //WAV类
...{
public void Play()