如何做扩展的设计?

举个简单的例子,

有一个用户发布新闻的功能,

新闻实体

public class News

{

      public string ID{get;set;}

      public string UserID{get;set;}

      public string Name{get;set;}

}

如果说用户发布一个新闻,则是调用逻辑类的AddNews()方法。

现在需要增加一个新需求,要控制用户发布新闻的数量。

最常规的做法就是在用户实体增加一个新闻数量的标记属性,在AddNews()里加入判断控制,同时每则增加一个新闻则改变新闻数量的标记。

 

我想请教的是:如何在一开始的设计中,就预留这种可能的扩展,在类的设计中应该怎么去做。能做到在新的需求中能最少的改变,实现最小的偶合。

盼高手指教,万分感谢!


翻翻过去那场雪
浏览 616回答 2
2回答

紫衣仙女

程序永远都是为业务服务的,所以在搞清楚业务之前做代码很可能是不满足业务需求的,像上面所说的这种属于一个业务功能,也就是说这是需求的一部分,只能在设计之前就搞清楚,而后期去完善就只能去改原来的设计了。当然了,为了尽量降低后期维护的更改范围,可以这么做:设计一个类,属性中包含其他实例,具体有哪些实例是通过读配置文件,通过反射生成,这样方便扩展,但是在实际操作过程中,该原来的代码是难免的。
打开App,查看更多内容
随时随地看视频慕课网APP