我有两种抽象产品类型:
type abstractProductA = {.
methodA: string
};
type abstractProductB = {.
methodB: int
};
用于创建以下产品类别:
class productA1 = {
pub methodA => "This is methodA of ProductA1";
};
class productB1 = {
pub methodB => 1;
};
我想在我的抽象工厂中调用 abstractProductA 和 abstractProductB 的实例。类似于以下内容(语法已关闭,我知道):
type abstractFactory = {.
createProductA: abstractProductA,
createProductB: abstractProductB
};
这样当我使用以下类创建新的具体工厂时:
class concreteFactory1 = {
pub createProductA => (new productA1);
pub createProductB => (new productA1);
};
和构造函数:
let g = new concreteFactory1#createProductB;
Js.log (g#methodA);
编译器应该抱怨 createProductB 只接受一个 int,而不是一个字符串(它目前没有)。
谢谢,任何建议都非常受欢迎。