第3条:一个实体应该有一个紧凑的职责

    一次只解决一个问题:只给一个实体(变量,类,函数,模块,库,名字空间)赋予一个定义良好的职责,随着实体的扩大,其职责范围一会扩大,但是职责不应该发散;如果一个实体有几个不同的目的,那么使用起来难度会剧增,因为这种实体除了可以增加理解难度,复杂性和各部分的出错,还会导致其他的问题。这种实体不仅大,而且难以维护。具有多个功能的实体通常是难以设计和实现的,多个职责通常意味着多种性格。应该选择小而目标单一的函数和类,以及边界清晰的紧凑模块。

例如:basic_string。在标准C++中,它是一个臭名昭著的设计。一个巨大的类设计,增加了太多“多多益善”的功能。最后成了“四不像”。

posted @ 2016-01-13 14:53  曹孟德  阅读(158)  评论(0编辑  收藏  举报