摘要: 正确的使用设计模式可以减少条件语句,减少代码量,提高复用性。错误的使用,则起不到那样的效果。下面的例子,本想使用策略模式,封装是封装了,可以还是用的状态模式的思路,导致最终没有起到优化的目的。原因还是选错了模式。代码: 1 #include 2 3 /*** 4 * 一个非常不恰当的使用设计模式——策略模式的例子 5 * 看起来就是状态模式和策略模式的杂交,还是畸形 6 * @author:zanzan101 7 */ 8 9 10 class Move 11 { 12 public: 13 // 重载()运算符,使之成为仿函数 14 virtual... 阅读全文
posted @ 2013-11-01 10:52 铁甲小宝 阅读(260) 评论(0) 推荐(0)
摘要: 问题定义:两个字符串A和B,长度分别为M和N,用这两个字符串组成长度为M+N的字符串S,要求S中来自A的字符满足其在A中的排列顺序,S中来自B的字符满足其在B中的排列顺序。分析:下面的采用了两种方法,第一种方法采用类似于全排列的迭代+递归的方法,实现略困难,第二种方法采用类似于全组合的0-1双递归方法,思路更清晰明朗。为了故意压缩代码量,算法中没有标明注释,两种方法的核心代码都是15行。代码: 1 #include 2 #include 3 #include 4 5 /*** 6 * @author:zanzan101 7 */ 8 using namespace std; 9 10 ... 阅读全文
posted @ 2013-11-01 09:55 铁甲小宝 阅读(876) 评论(0) 推荐(0)