因为default_create
始终是创建方法的一个示例,如果我不想允许类的后代将其用作创建方法,则可以将其用作create some_instance
的实例创建有办法吗?
deferred class A
feature
make (a_db_connection: DB_CONNECTION)
do
default_create
db_connection := a_db_connection
end
class B
inherit
A
create
make
-- default_create -- I'd be able to do that and want to avoid it
答案 0 :(得分:0)
一旦一个过程没有被列为创建过程,就不能将其用于创建对象。在原始示例中,可以使用B
创建类make
的实例,但不能使用default_create
创建实例,即创建指令create b
将被标记为错误(假设{ {1}}的类型为b
)。
另一方面,如果根本没有B
子句,并且不推迟类,则使用过程create
创建对象。可以通过创建一个空的创建子句来禁止这种情况:
default_create
摘要:
class C
inherit
A
create -- There are no creation procedures, no instance of the class can be created.
feature
...
end
。