我希望写一个类,在实例化的时候可以这样Message msg=new Message(FriendMessage);FriendMessage是这个消息的类型。不同类型有不同属性。
2 回答
互换的青春
TA贡献1797条经验 获得超6个赞
你给的信息还是有点模糊,下面是我的理解下写出的代码,希望能对你有所帮助!
//运用LSP 原则+工厂方法 实现松耦合//类型public enum MessageType { FromUin = 1, ToUin = 2}//基类public abstract class Message{ //消息内容 string messge { get; set; } public abstract void ShowInfo(); }public class FromUinMessage : Message{ //新增属性 public string Name { get; set; } public override void ShowInfo() { //...... } }public class ToUinMessage : Message{ //新增属性 public string Color { get; set; } public override void ShowInfo() { //...... } }public class UninService{ private Message _message; public UninService(MessageType messageType) { this._message = UninFactory.GetMessageType(messageType); } public void ShowMessage() { _message.ShowInfo(); } }//工厂方法public class UninFactory{ public static Message GetMessageType(MessageType messageType) { switch (messageType) { case MessageType.FromUin: return new FromUinMessage(); case MessageType.ToUin: return new ToUinMessage(); default: return null;//异常处理 } } }
- 2 回答
- 0 关注
- 105 浏览
添加回答
举报
0/150
提交
取消