Api 我的DI容器的DSL有意义吗?
因为我不是以英语为母语的人,所以我最好确保不要创建一个会让别人觉得尴尬的DSL。一个DI容器出现在一个项目中,我将它作为一个单独的项目进行隔离。我看到其他DI/IOC容器使用类似于Api 我的DI容器的DSL有意义吗?,api,inversion-of-control,usability,dsl,fluent-interface,Api,Inversion Of Control,Usability,Dsl,Fluent Interface,因为我不是以英语为母语的人,所以我最好确保不要创建一个会让别人觉得尴尬的DSL。一个DI容器出现在一个项目中,我将它作为一个单独的项目进行隔离。我看到其他DI/IOC容器使用类似于bind(interface).to(class)的语法。我将使用以下(伪代码): 这些词有意义吗?还是听起来像是某个不懂这些词的更精细语义的人的构造?我认为你的方法和其他DI项目的例子一样有意义 几点注意: bind/to比给定的/要短,然后使用。这本身不是一个问题,但是如果你能用较短的名字来表达相同的意思,那么就没
bind(interface).to(class)
的语法。我将使用以下(伪代码):
这些词有意义吗?还是听起来像是某个不懂这些词的更精细语义的人的构造?我认为你的方法和其他DI项目的例子一样有意义 几点注意:
bind
/to
比给定的/要短,然后使用。这本身不是一个问题,但是如果你能用较短的名字来表达相同的意思,那么就没有太多理由使用较长的名字(在给定的例子中,他们读的都是相同的)
given(class).inject(param).inMethod(method)
的英文读起来不错,但它的对象顺序可能会违反某些人的直觉(class/param/method而不是class/method/param,后者是面向对象语言的自然顺序:class.method(param);
);考虑:给定(类)和(方法)。使用参数(param)
given(interface).thenUse(class)
given(class).constructWith(id=5)
given(class).inject(observer).inMethod(addObserver)