/** * 比如我們現在有很多形狀比如圓形,矩形和正方形。
* 這類都是屬於形狀,那我們是不是可以通過專門生產形狀的工廠來生成它們的例項麼?
* */
class circle
}class rectangle
}class square }/*
* * 那麼接下來,我們可以建立乙個專門生產形狀的工廠來生產它們了。
* 即根據字串來產生對應需要的類。你在這裡可以看到類的出口都已經在乙個方法中了。
* */
class shapefactory
}}/**
* 那麼我們需要使用的時候,就可以直接只需要new出乙個工廠,
* 在根據字串就能拿到對應的需要生產的類了。而不需要分別對類進行new。
* */
const shapefactory = new
shapefactory();
//通過工廠拿各種形狀
const shape1 = shapefactory.getshape('circle');
shape1.draw();
const shape2 = shapefactory.getshape('rectangle');
shape2.draw();
const shape3 = shapefactory.getshape('square');
shape3.draw();/**
* output:
* i'm a circle
* i'm a rectangle
* i'm a square */
/*** 優勢:
* 那麼使用工廠模式的好處也是顯而易見的,比如例項的生產比較複雜,
* 或者說生成例項後還需要額外加工,這個時候工廠給了我們乙個統一的出入口,
* 也方便了日後對這個例項的修改。比如你要修改工廠產出是乙個單例的時候,
* 就不需要在所有的類中修改,而只要在工廠出口修改即可達到目標。
* */
設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...