设计模式帮助 - 组合和代码重用

时间:2012-10-04 15:59:00

标签: oop design-patterns composition

我似乎总是依赖于工厂模式/继承来进行代码重用,并且已经阅读了有关继承的组合,并且确实看到了松散耦合的好处。你肯定会获得继承的依赖。所以我试图围绕“过程”对象的模式。

他们基本上都是,

  • 从数据库中获取“环境变量”
  • 获取文件列表
  • 处理/转换每个文件(将XML转换为CSV),这需要   
         
    • 逐行阅读文件
    •    
    • 逐行将文件写入另一种格式
    •    
    • 更新状态(将状态写入数据库)
    •   

获取文件列表可能意味着从本地目录获取文件列表,或从远程FTP站点获取文件列表。

我正在努力的事情,使用compositoin是CODE REUSE。使用继承,如果我有一个基本抽象类,我可以将我的GetEnvironment,UpdateStatus方法放在基类中,子类将免费获取它们。我怎样才能使用合成来获得代码重用?我可以有辅助类,但我基本上会在每个“进程”类中重复使用这些辅助类的样板。如有必要,我可以编写一些伪代码。

1 个答案:

答案 0 :(得分:0)

鉴于问题中的细节,我的解决方案如下:

  • 环境
    • 保存环境详细信息的域对象。
  • EnvironmentDAO和DBEnvironmentDAO
    • 用于构建Environment域对象的接口和DB支持的实现。
  • AToBConverter
    • 获取文件并引用环境对象
    • 执行转换,写入另一个文件并更新数据库中的状态
  • 启动器
    • 获取文件列表。
    • 使用DAO从数据库中检索环境。
    • 采用可扩展的mechanim(如ExecutorService)并行运行AToBConverters。