工厂模式

2018-11-22  本文已影响0人  0说
<body>
    <script>
        // 工厂模式丑陋版

        // 各种商品的价格
        function Steak(){
            this.price = 30
            this.time = 10
        }

        function Apple(){
            this.price = 30
            this.time = 10
        }

        function Pear(){
            this.price = 30
            this.time = 10
        }
        // 要得到哪个价格
        let a = new Steak()
        let b = new Apple()
        let c = new Pear()



        // 工厂模式简单版
        function getFruit(name){
            let data = null;

            switch(name){
                case 'Steak': 
                    data = new Steak()
                    break;
                case 'Apple': 
                    data = new Apple()
                    break;
                case 'Pear': 
                    data = new Pear()
                    break;
            }

            return data
        }
        console.log(getFruit('Steak'))
        
        // 好处: 比如我们手机软件进行归类,这样就比较快速的找到软件
        // 缺点: 扩展性不好 比如要再加一个水果 就得再一个构造函数  switch 再一个case 
        

        // 原型工场模式
        function Shop(name){
            return this[name]()
        }
        
        Shop.prototype = {
            Steak(){
                this.price = 30
                this.time = 10
            },
            Apple(){
                this.price = 30
                this.time = 10
            },
            Pear(){
                this.price = 30
                this.time = 10
            },
            // 好处易扩展 比如要加一个桔子直接这里加
            orange(){
                this.price = 15
                this.time = 8
            }
        }
        
        let pear = new Shop('Pear')
        console.log(pear)
    
    </script>
</body>
上一篇 下一篇

猜你喜欢

热点阅读