我希望写一个类,在实例化的时候可以这样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 关注
- 190 浏览
添加回答
举报
0/150
提交
取消
