shuxx

导航

面向对象的设计-----单一职责

单一职责就是指一个类应该专注于做一件事。现实生活中也存在诸如此类的问题:“一个人可能身兼数职,甚至于这些职责彼此关系不大,那么他可能无法做好所有职责内的事情,所以,还是专人专管比较好。”我们在设计类的时候,就应该遵循这个单一职责原则.

说起来容易做起来难,在实际设计或评审过程如何确定是否该拆分呢?尺度如何把握?原则很简单:需求决定一切,如果我们需要的东西是一个在生命周期内不会变的东西,则尽量把他们组合在一起,否则就应该按是否变化的原则拆分。单一职责原则实际上是把相同的职责进行了聚合,避免把相同的职责分散到不同的类之中,这样就可以控制变化,把变化限制在一个地方,防止因为一个地方的变动,引起更多地方的变动的“涟漪效应”,单一职责原则避免一个类承担过多的职责。单一职责原则不是说一个类就只有一个方法,而是具有单一功能。
    我们在使用单一职责原则的时候,牢记以下几点:
A、一个设计合理的类,应该仅有一个可以引起它变化的原因,即单一职责,如果有多个原因可以引起它的变化,就必须进行分离;
B、在没有需求变化征兆的情况下,应用单一职责原则或其他原则是不明智的,因为这样会使系统变得很复杂,系统将会变成一堆细小的颗粒组成,纯属于没事找抽;
C、在需求能够预计或实际发生变化时,就应该使用单一职责原则来重构代码,有经验的设计师、架构师对可能出现的需求变化很敏感,设计上就会具有一定的前瞻性。

在产品的研发中一点都马虎不得,在产品中的一点点缺陷或一点点的忽略都会带来很严重的后果,一切都要以实战高标准来要求自己。不要有:“就这样,算了吧!”的想法。对于产品要做到每一个功能每一个操作都要有非常明确的理由和目的,应用场景。软件以用为本!

posted on 2009-03-11 10:26  舒秀宣  阅读(180)  评论(0编辑  收藏  举报