Szy*_*Jeż 27 ruby naming namespaces module naming-conventions
什么是使用的利弊:
FooLib::Plugins
FooLib::Plugins::Bar
Run Code Online (Sandbox Code Playgroud)
与
FooLib::Plugin
FooLib::Plugin::Bar
Run Code Online (Sandbox Code Playgroud)
命名惯例?你会用什么或者你用的是什么?在社区中更常用的是什么?
Szy*_*Jeż 21
使用:
module FooLib end
module FooLib::Plugins end
class FooLib::Plugins::Plugin; end #the base for plugins
class FooLib::Plugins::Bar < FooLib::Plugins::Plugin; end
class FooLib::Plugins::Bar2 < FooLib::Plugins::Plugin; end
Run Code Online (Sandbox Code Playgroud)
或用不同的词语:
module FooLib
module Plugins
class Plugin; end #the base for plugins
class Bar < Plugin; end
class Bar2 < Plugin; end
end
end
Run Code Online (Sandbox Code Playgroud)
还安排这样的文件:
- foo_lib/
- plugins/
- plugin.rb
- bar.rb
- bar2.rb
Run Code Online (Sandbox Code Playgroud)
这就是Rails的工作方式(所以这就是Rails方式).即,查看Associations名称空间和Associations :: Association类,其中构成Associations名称空间的所有类都从该类继承(即Associations :: SingularAssociation).
Ale*_*x D 13
对我来说FooLib::Plugins看起来像一个模块,用作命名空间,各种插件类都保存在其中.FooLib::Plugin看起来像FooLib插件的超类.
在FooLib::Plugins::Bar,Bar绝对看起来像一个插件的名称.有了FooLib::Plugin::Bar,我怀疑是否Bar是一个使用的助手类Foo::Plugin,或插件的名称.