我似乎总是依赖工厂模式/继承来进行代码重用,并且一直在阅读关于组合而不是继承的内容,并且确实看到了松散耦合的好处。您肯定会通过继承获得依赖关系。所以我试图围绕“处理”对象的模式来思考。
他们基本上都是,
- 从数据库中获取他们的“环境变量”,
- 获取文件列表,
- 处理/转换每个文件(想想将 XML 转换为 CSV),这需要
- 逐行读取文件
- 将文件逐行写入另一种格式
- 更新状态(将状态写入数据库)
获取文件列表可能意味着从本地目录获取文件列表,或者从远程 FTP 站点获取文件列表。
我正在努力使用 compositoin 的是代码重用。使用继承,如果我有一个基抽象类,我可以将我的 GetEnvironment、UpdateStatus、方法放在基类中,子类将免费获得它们。我如何能够使用组合获得这样的代码重用?我可以有辅助类,但我基本上会在每个“流程”类中重复这些辅助类的样板使用。如有必要,我可以编写一些伪代码。