此标题是盛大一位资深架构师跟我说的,感触颇深
在我们设计代码的时候最容易封装的莫过于一个vector,一个map,可能就帮你搞定了(如果这都搞不定,建议你不用继续看本文了),但是在某些时候,我们会发现自己的封装不是那么漂亮,有的是大量的private,protected方法,逻辑有点复杂,但是又想不到如何对他进行更好的封装。如果你仔细回顾一下,你可能会发现一个问题,那就是往往在你碰上这种情况时,你是在设计一个比较复杂的、涉及上下文比较多的算法,并且那里恰好是你整个程序里稍微复杂的那一部分;
我说的面向业务逻辑便是将你的程序分为两部分(其实是一部分,为了理解方便称为两部分)
容器( 容器很容易搞定,接口基本是固定的,本文不进行描述)
业务逻辑
我们平常说的“设计模式”实际上就是为了解决业务逻辑的复杂繁琐设计的,但是往往大量人发现:没接触过设计模式,看不懂,接触过的,哦,这就是设计模式啊,我用过;
我们把“设计模式”看的更抽象一点,实际上我们是在解决“业务逻辑”中的代码设计问题,或者我们把“业务逻辑”看的更狭隘一些,复杂业务逻辑的设计;
方法:
- 能用设计模式就用设计模式吧
- 不会就尽可能的拆分你的代码,让他成为一个绝对独立的代码,代码形式不限于class, template;一般情况下,复杂琐碎的业务逻辑都可以设计成功能非常简洁单一的函数(无上下文的),STL里有大量此类模式,比如std::foreach, fill.....等等
以上内容可能需要一定的理解力行