我正在为学校实验室工作,目标是创建一个网页控件,以便只接受来自用户的货币价值。 Rules:
1st digit must be “-“ or “$”
2nd digit must be “$” or a number
3rd digit on must be a number or a “.”
Only two digits after decimal
Must have a “$”
Eiffel有一个功能Design by Contract。据此,对于任何例行公事,都有一个检查,例如require和ensure这些断言必须为真。但是,我一直无法找到如何通过命令行强制执行规则,如果断言为false,则编译器或运行时必须有错误/异常。 例如,如果这是根类, class
APPLICATION
inherit
ARGUMENTS
create
让我们假设我们有一个特质T。什么是实现最好的办法如下: 大家谁写的T的实现应该被强迫提供一种可能性,即允许T无参数初始化,即,我们可能不得不强制执行一个可配置的工厂。 所有逻辑/数据仅取决于实际的初始化参数(某个实施A的T)应集中处理/存储,但应在工厂和A中提供。 最简单的/简洁的方式我认为实现这一目标(大约)将添加一个特质的一家工厂,并链接T此工厂: trait T {
val fac