![]() |
1
4
选项1中描述的构造器是我在寻找一个不熟悉的API时所期望的。 不过,它们可能是令人厌烦的野兽,在向用户类添加新字段时,您可能会忘记更新它们。因此(如果性能考虑允许),考虑使用反射编写“智能”构造函数, along the lines of this example . 关于建设者与工厂方法的问题, Framework Design Guidelines 提供以下建议:
|
![]() |
2
0
选项1是最整齐和最直观的。 |
![]() |
3
0
如果您真的想从用户对象创建一个销售人员对象,那么您描述的任何一个选项都可以工作。 但我认为你需要问问自己你想做什么。用户何时/为什么成为销售员?你想改变现有物体的巴哈维奥吗?你的行为在你的系统中有规律的改变吗? 根据您的需要,您可以考虑使用策略或模板方法模式。 |
![]() |
4
0
我使用选项1。升级构造函数或转换构造函数。 |
![]() |
5
0
你已经收到的答案已经足够了。但是,我注意到你提到了演员阵容是不可能的。如果你有理由使用石膏,你可以 使之成为可能 通过重载运算符。
确定哪种解决方案 更聪明的 需要的信息比你原来的帖子提供的要多。然而,我倾向于从完整性和多功能性两个方面进行阐述,并考虑两者兼而有之。
伊恩是对的。一般的经验法则是,只有当您有一个不能满足构造函数的功能需求,或者语言的约束开始妨碍您时,才使用工厂。例如,需要两个具有相同签名的不同构造函数。 |
|
simply lemon · python上链表的添加方法 1 年前 |
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
![]() |
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
![]() |
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
![]() |
Andy Votava · 从父类定义调用学生方法 1 年前 |