<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 30.工廠模式 想象一下一家餐館,它實際上是一家食品工廠。 如果你需要 dosa &lt;sup class="footnote"&gt;[ [64](#_footnotedef_64 "View footnote.") ]&lt;/sup&gt; ,請問服務員,如果你需要 idiyappam &lt;sup class="footnote"&gt;[ [65](#_footnotedef_65 "View footnote.") ]&lt;/sup&gt; ,請問服務員 它。 本質上,飯店或食品工廠創建了一個稱為服務員的通用界面,供你訂購任何東西。 你只問他,他就送了,你不必關心 dosa 的制作方式或 idiyappam 的制作方式。 在編程中,你可以做同樣的事情,你可以實現一個工廠類,該類隱藏了制造對象的困難,并為你提供了一個通用的接口來制造對象。 看下面的代碼 [factory.rb](code/design_patterns/factory.rb) 。 輸入并運行它。 ```rb ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ```rb | ``` # factory.rb class Shape def draw puts "In instance of #{self.class}" end end class Square &lt; Shape end class Circle &lt; Shape end class ShapeFactory def get_shape type case type when :square then Square.new when :circle then Circle.new end end end shape_factory = ShapeFactory.new square = shape_factory.get_shape :square circle = shape_factory.get_shape :circle square.draw circle.draw ```rb | ``` 輸出: ```rb In instance of Square In instance of Circle ``` 讓我們看看它是如何工作的。 代碼中的重點是這一點 ```rb class ShapeFactory def get_shape type case type when :square then Square.new when :circle then Circle.new end end end ``` 我們有一個名為`ShapeFactory`的類,該類提供了通過函數`get_shape`制作對象的通用接口。 我們將要創建的對象類型傳遞給此`get_shape`。 由于這只是示例,此處的工廠模式看起來像是使代碼復雜而不是程序員更簡單,但是在現實生活中,對象的創建可能非常復雜,如果工廠類可以掩蓋復雜性,那么它的生命就可以了。 程序員使用它來構建他的軟件將變得簡單。 ### 30.1。 行使 想象一下,你正在編寫用于游戲的軟件,并且需要創建敵對對象,例如坦克,直升機,導彈發射器,步兵等。 編寫一個工廠模式,當你調用`Enemy.random`時會返回一個隨機的敵人對象。
                  <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>

                              哎呀哎呀视频在线观看