js设计模式的学习

设计模式

        什么是设计模式:一套可以被复用的,编写分明的经验总结。

        作用:让我们写的代码可复用,提法我们的代码的可维护性。

        学习范围:本次主要学习在js中应用很广的设计模式

        目的:用它来解决一些实战中的问题,我们学习要先学习这些问题,再用设计模式给出一套解决问题方案。

分类 

        一、创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。(解决创建类或者实例化对象时候产生的问题)

       二、结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。(解决类或者对象在组合在一起时候的问题)

        三、行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。(解决类或者对象之间耦合,职责关系的问题)


简单工厂模式

       简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口. 这种模式主要用在所实例化的类型在编译期并不能确定, 而是在执行期决定的情况。说得通俗点就像饺子馆里面的饺子,要汤的还是要干拌的,取决于客户的需求     

var car Factory = {
     createCar :  function ( model ){
         var  car;
         switch ( model ){
             case  "SportsCar" :
                 car new  SportsCar();   //具体的实现方法可以看成是都实现了造车的接口,并且进行了相应的重写
                 break ;
             case  "SUV" :
                 car new SUV ();
                 break ;
           default :
                 car new  Sedan();  //普通家轿
                 break ;
         }
         return  car;
     }
}

我们可以把carFactory的创建和使用看成是一个简单的工厂模式,我们需要什么类型的车,只需要告诉工厂类或者方法的类型就好了

完全不用在编译期去确定我们具体需要什么类型的车,只需要在我们需要的时候告诉他就好了。并且如果需要新增汽车的类型,那么我

们只需要在carFactory里新增类型就好了

var  Shop =  function (){};
    Shop.prototype = {
     sellCar :  function ( model ){
         var  car = carFactory.createCar(model);    
         return  car ;
     }
}

   创建好店面和汽车工厂后,我需要一辆跑车的具体实现方式就是以下模样

  var carShop = new Shop();

  var myCar  = carShop.sellCar("SportsCar");


-----------------------------------------------------------------------------------------

   

          




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值