Ruby程序将不变的部分独立出来
时间:2012-6-8
将不变的部分独立出来,挣脱这个困境的办法是,用一个将各种格式区分开来的设计重构这段混乱的代码,这样做的关键是无论要生成何种格式(不管是纯文本,HTML还是将士为的PostScript),report的基本逻辑流程不变:
1.输出指定格式所需要的头信息;
2.输出标题;
3.输出具体报告的每一行;
4.输出指定格式所需要的结尾部分
当这个流程被确定后,我们可以回顾在面向对象编程的基础知识中学到的那一课,设定一个抽象的基类,在其中包含完成以上基本步骤的土方法,但是将具体的实现留给子类去做,有子这个方法,我们对每种输出方法都创建一个子类去解决.