当前位置 : 主页 > 手机开发 > 其它 >

是否可以在clojure中将方法继承到不同的命名空间?

来源:互联网 收集:自由互联 发布时间:2021-06-19
我希望能够通过在其他地方包含一个命名空间来访问多个命名空间中的多个函数. 例如,假设我有vehicles.clj,car.clj,bike.clj和handler.clj. 我希望能够“继承”或包含来自vehicle.clj中car.clj和bik
我希望能够通过在其他地方包含一个命名空间来访问多个命名空间中的多个函数.

例如,假设我有vehicles.clj,car.clj,bike.clj和handler.clj.

我希望能够“继承”或包含来自vehicle.clj中car.clj和bike.clj的所有方法,这样我就可以在我的handler.clj命名空间(或任何其他命名空间)中使用或要求vehicles.clj并调用函数汽车和bike.cljs.

与C#中的父类和子类不同.这可能吗?

我需要这个的原因是因为我将许多函数拆分成不同的文件以保持关注点的分离,但我还希望能够只包含主文件(例如,vehicles.clj as(:use) [myproject.vehicles])在任何其他命名空间/文件中调用所有这些类中的函数.

有一个更好的方法吗?

谢谢.

https://github.com/ztellman/potemkin有这样做的工具,但我强烈建议你不要这样做.这种事情很容易使代码难以理解,很容易将看似改进的组织变成意大利面条的噩梦.

请谨慎使用,但请注意,让自己更轻松并不总是意味着您正在改进代码!

网友评论