Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript库的设计模式_Typescript_Design Patterns_Singleton - Fatal编程技术网

Typescript库的设计模式

Typescript库的设计模式,typescript,design-patterns,singleton,Typescript,Design Patterns,Singleton,我想开发一个javascript/typescript库,其工作原理如下: 从“mylibrary”导入mylibrary mylibrary.config({ 标记:“myRandomString” }) mylibrary.users.get({ id:'userIdString' }) mylibrary.users.create({ 用户名:“用户名” }) mylibrary.products.get({ 标题:“productTitle” }) mylibrary.products.

我想开发一个javascript/typescript库,其工作原理如下:

从“mylibrary”导入mylibrary
mylibrary.config({
标记:“myRandomString”
})
mylibrary.users.get({
id:'userIdString'
})
mylibrary.users.create({
用户名:“用户名”
})
mylibrary.products.get({
标题:“productTitle”
})
mylibrary.products.create({
标题:“productTitle”
})
使用
config()
函数,我将设置使库正常工作所需的所有数据。这只需要做一次

然后在
mylibrary
中,我使用几乎相同的方法拥有不同的对象,在上面的
users
products

我正试图找到在typescript中实现此模式的最佳方法。我不想实例化一个类。我的模式被认为是单身吗

您将如何在typescript中处理此模式

我的图书馆是这样发展的,好主意吗

const mylibrary:IMyLibray = {
  
  token: '',

  config(param:ConfigType){
    ...
  },

  users: {
    create(param:CreateTypeInput){
      ...
    }
  },

  ...
  
}

p、 我想让这样的库可以在浏览器和服务器上使用


谢谢

您当然不需要使用类,是的,这是一个单例,这很好,但您的设计存在的问题是,
myLibrary
可以在没有或配置之前使用。考虑使用<代码> CONFIG返回一个对象,该对象提供对需要配置的功能的访问,或者只需使用库工厂方法,允许创建多个对象。你不想上课,也不需要上课!如果没有配置,我想抛出一个错误。但我看到了按你的建议做的好处。现在我正在考虑为
mylibrary
编写一个单例,为每个对象编写一个单例,比如
users
products
。但是将单例编写为类不是更干净吗?我想如果我写的是类而不是对象,我会有更多的自由。我错了吗?非常感谢。既然我是用typescript开发的,它有什么区别吗?你会用这个物体吗?那我怎么用装饰师呢?没什么区别。