gpt4 book ai didi

java - OCaml 中的经典单例实现

转载 作者:行者123 更新时间:2023-11-29 06:48:09 25 4
gpt4 key购买 nike

我正在尝试概念化 OCaml 中的单例设计模式(Java 类),并且曾经看到实例暗示仿函数或模块,我在 GoF 工作的概念证明中都没有使用它们。基本上,我想使用 OCaml 重新创建以下功能:

public class Singleton
{
private static Singleton UniqueInstance;
private Singleton(){}
public static Singleton getInstance()
{
if(UniqueInstance==null)UniqueInstance=new Singleton();
return UniqueInstance;
}
}

如果没有模块或仿函数,这可能吗?

最佳答案

您能解释一下为什么模块解决方案不适合您吗?模块确实是执行您在其他语言中使用单例执行的操作的自然方式。

一般来说,GOF 风格的模式在 OCaml 中基本上是无关紧要的。事实上,对象在 OCaml 中基本上是无关紧要的。具有 OO 背景的人通常认为他们应该从使用 OCaml 中的 OO 功能开始,但这是错误的。大多数用其他语言的对象解决的问题都可以用 OCaml 中的参数多态性、代数数据类型和模块来解决。仿函数是一个稍微高级一点的话题,而对象就在那儿。在您精通该语言的其余部分之前,您不应该接触对象系统。

关于java - OCaml 中的经典单例实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/535481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com