<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [toc] ### 簡單工廠模式 簡單工廠模式(Simple Factory),又叫靜態工廠方法,由一個工廠對象決定創建某一種實例,主要用來創建同一類實例。 ```js var factory = function(args){ //工廠函數,根據type類型選擇創建某一個類的實例 var o = new Object(); //所有實例共有的方法 o.func = function(){ //... } //指定不同的方法 if(){ o.func1 = function(){ //... } }else{ o.func2 = function(){ //... } } return o; } var obj = factory(args) ``` ### 工廠方法模式 工廠方法模式(Factory Methods),簡單工廠模式只適合創建單一類型的實例,工廠方法模式將實際創建對象的工作推遲到子類中。 ```js //安全模式的工廠函數(通過判斷this來判斷是否使用new關鍵字) var Factory = function(type,content){ if(this instanceof Factory){ //如果使用new關鍵字,則查找原型鏈并創建對象 var s = new this[type](content); return s; }else{ return new Factory(type,content); //如果沒有使用new關鍵字 } } //在工廠原型中創建所有類型數據的基類,添加時只需要修改原型即可。 Factory.prototype = { Java:function(content){ //... }, JavaScript:function(content){ //... }, php:function(content){ //... } } ``` ### 抽象工廠模式 抽象工廠模式(Abstract Factory) 抽象類:是一種聲明但是不能直接使用的類 ```js //抽象工廠方法 var AbstractFactory = function(subType,SuperType){ if(type abstracFactory[subType] === 'function'){ //如果原型鏈上存在對應的抽象類 //緩存類 function F(){}; //繼承父類的方法和屬性 F.prototype = new AbstractFactory(superType)(); //子類的構造器指向子類 subType.constructor = subType; //子類的原型指向父類 subType.prototype = new F(); }else{ throw new Error("不存在對應的抽象類") } } //Car抽象類 AbstractFactory.Car = function(){ this.type = "car"; } AbstractFactory.Car.prototype = { getPrice:function(){}, getSpeed:function(){} } //Bus抽象類 AbstractFactory.Bus = function(){ this.type = "bus"; } AbstractFactory.Bus.prototype = { getPrice:function(){}, getSpeed:function(){} } ``` ### 建造者模式 建造者模式(Builder)將一個復雜對象構建層與表示層分離,同樣的構建過程采用不同的表示 ```js //三個類可以對參數進行解析 var Human = function(){...}; var Name = function(name){...}; var Work = function(work){...}; //在創建person時分別實例化了三個對象,然后將三個對象組合返回 var Person = function(name,work){ var _person = new Human(); _person.name = new Name(name); _person.work = new Work(work); return _person; } ``` ### 原型模式 原型模式(Prototype)用原型實例指向創建對象的類,可以使得新創建的實例共享原型對象的屬性以及方法 ```js var Person = function(name){ this.name = name; } Person.prototype = { sayHi:function(){}, run:function(){} } ``` ### 單例模式 單例模式(Singleton)只允許實例化一次的對象類,常用來定義命名空間,用來管理代碼庫的各個模塊 ```js var A = { Util:{ func1:function(){}, func2:function(){} }, Tool:{ }, Ajax:{ } } ``` 在使用時候可以根據命名空間區分不同的方法避免命名沖突
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看