【发布时间】:2019-08-22 15:53:44
【问题描述】:
正如this question 中提到的,没有办法定义一个我可以重新定义为后代的常量。
在我的许多情况下,我都希望有一个可以重新定义的常量。我认为避免在每次咨询中创建的替代方案是没有意义的
这是不可行的
class A
feature -- Access
Default_value: STRING = "some A value"
end -- Class
class B
inherit
B
redefine
Default_value
end
feature -- Access
Default_value: STRING = "some B value"
end -- Class
使用一次 instance_free 替代
class A
feature -- Access
Default_value: STRING
once
Result := "some A value"
ensure
instance_free: class
end
end -- Class
class B
inherit
B
redefine
Default_value
end
feature -- Access
Default_value: STRING
once
Result := "some B value"
ensure
instance_free: class
end
end -- Class
据我了解,一次不会使用 B 值创建,因为将采用 A 类值
带属性的替代方案
class A
feature -- Access
Default_value: STRING
attribute
Result := "some A value"
ensure
instance_free: class
end
end -- Class
class B
inherit
B
redefine
Default_value
end
feature -- Access
Default_value: STRING
attribute
Result := "some B value"
ensure
instance_free: class
end
end -- Class
这是唯一的好习惯吗?
【问题讨论】:
标签: eiffel