我正在用 Ruby 编写一些工资单软件,它打算被美国和加拿大的公司使用(未来有可能在其他地方扩展。)显然对于像 Employee 这样的一些类,会有一些共享功能,但是也有很多不同之处。例如,一些监管数据和业务逻辑只需要在一个国家或另一个国家使用。
由于公司在此应用程序中只能包含一种类型的员工(即公司的员工只能是加拿大人或美国人),我想在运行时使用 mixins 添加不同的功能,而不是创建继承层次结构这有可能变得非常麻烦。Employee 类将不是唯一在国家/地区之间存在差异的类,因此动态扩充我的所有类以在运行时包含区域功能似乎会有所帮助。
这是组织我的应用程序的有效方式,还是有一些缺点?