理解如下:
- 客户端不能直接调用具体的业务类时可以使用代理类.
- 代理类和业务类重同一接口继承下来.
- 代理类调用业务类,客户端调用代理类.
接口代码:
/// <summary>
/// 定义客户端调用的目标对象的接口
/// </summary>
public interface IPlayMusic
{
string PlayMusic(string musicType);
}
业务类代码:
public class PlaySubject:IPlayMusic { private static readonly PlaySubject instance = new PlaySubject(); private PlaySubject() { } public static IPlayMusic PlaySuject { get { return instance; } } #region IPlayMusic 成员 public string PlayMusic(string musicType) { if (musicType == "mp3") { return "mp3"; } else { return "other"; } } #endregion }
代理类代码:
public class PlayMusicProxy:IPlayMusic { #region IPlayMusic 成员 public string PlayMusic(string musicType) { return PlaySubject.PlaySuject.PlayMusic(musicType); } #endregion }
客户段代码:
PlayMusicProxy proxy = new PlayMusicProxy(); string str; str = proxy.PlayMusic("mp3"); Response.Write(str);
问题:
看来看去好象作用不大,好处是什么?代理类封装了业务逻辑,简化了客户端代码?
浙公网安备 33010602011771号