これは、私が何年にもわたって使用し、微調整していることに気付いたjsパターンです。
問題は、私はいくつかの実験の後でそれに陥りました、そして私はこのタイプのパターンが名前を持っているかどうか知りたいです。私は多くのデザインパターンを閲覧しましたが、類似したものは見つかりませんでした(または、特にモジュラータイプのパターンの場合は単純です)。
var FOO = (function ($) {
var privateFuncA = function() {
...
},
privateFuncB = function() {
...
},
self = {
init: function() {
privateFuncA(); // Call a private func
self.publicFunc(); // Call a public func
},
publicFunc: function() {
...
}
};
return self;
}(jQuery));
$(function () {
// Initialise FOO
FOO.init();
});
アイデアは、すべての名前空間を維持し、疑似パブリック/プライベート機能を可能にすることです。
モジュール化する必要がある場合は、ベースFOOオブジェクトを拡張します。
// Extend FOO object
FOO.Bar = (function ($) {
var privateFunc = function() {
...
},
self = {
publicFunc: function() {
...
}
};
return self;
}(jQuery));
外部から拡張オブジェクトでpublicFuncを呼び出したい場合は、次のことができます。
FOO.Bar.publicFunc()
このタイプのパターンに名前があるかどうか、またはそのようなデザインに既知の問題があるかどうかを誰かが知っていますか?