zoukankan      html  css  js  c++  java
  • javascript设计模式-工厂模式

    简单工厂模式:使用一个类来生成实例。

    复杂工厂模式:使用子类来决定一个成员变量应该是哪个具体的类的实例。

    简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口。通过工厂,可以取得需要的实例。逻辑示意图:

    下面列举了一个例子:

    var Coffee = function(){
        this.color="brown";
    };
    var Milk = function(){
        this.color="white";
    };
    var OrangeJuice=function(){
        this.color="orange";
    };
    var DrinkShop = function(){
        this.sellDrink = function( type){
    
           var drink;
    
            switch( type){
    
               case "coffee":
    
                    drink= new Coffee();
    
                    break;
    
                case "milk":
    
                    drink= new Milk();
    
                    break;
    
                case "orangeJuice":
    
                default:
    
                    drink= new OrangeJuice();
    
                   break;
    
            } 
            drink.showColor=function(){
                console.log("Drink color:"+drink.color);
            };
            return drink;
        }
    };
    
    
    var drinkShop = new DrinkShop();
    drinkShop.sellDrink("milk").showColor();//Drink color:white

    可以看出,简单工厂会根据需要生成实例,而这些类一般都包含有某些属性或方法。比如上例中,各种drink都有color属性。这样做的好处就是把需要创建实例的部分抽离,统一管理,对于系统的各部分职能进行划分,降低耦合度。

    工厂模式的适用场景:

    1.对象的构建相对复杂

    2.需要依赖具体环境创建不同实例

    3.处理很多具有相同属性的小对象

  • 相关阅读:
    Resample the mask
    高斯消元法
    java中的大数BigInteger
    JAVA中如何使用SORT从大到小排
    Java中Array.sort()的几种用法简明教程 (需要初始化要排序的对象)
    java中两个字符串如何比较大小
    java数组初始化函数
    BestCoder Round #89 Fxx and string
    Flooded!
    基础练习 数列排序
  • 原文地址:https://www.cnblogs.com/linda586586/p/4222336.html
Copyright © 2011-2022 走看看