js开放——封闭模式

   <h1>开放——封闭原则</h1>
   <p>在面向 对象的程序设计中,开放——封闭原则(OCP)是最重要的一条原则。一个程序具有良好的设计,往往说明它是符合开放——封闭原则。</p>
   <p>开放——封闭的原则思想:当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增加代码的方式,但不可以改动程序的源代码。</p>、
   <p>用对象的多态性消除条件分支</p>
   <script>
      var makeSound = function( animal ){
         animal.sound();
      };
      
      var Duck = function(){};
      Duck.prototype.sound = function(){
          console.log( "嘎嘎嘎" );
      };
      
      var Chicken = function(){};
      Chicken.prototype.sound = function(){
          console.log( "咯咯咯" );
      };
      
      makeSound( new Duck() );
      makeSound( new Chicken() );
      /*增加动物狗,不用改动原有的makeSound函数*/
      var Dog = function(){};
      Dog.prototype.sound = function(){
         console.log( "汪汪汪" );
      };
      makeSound( new Dog() );
      
    </script>
    <p>开放——封闭原则:找出变化的地方</p>
    <p>通过封装变化的方式,可以把系统中稳定不变的部分和容易变化的部分隔离开来。在系统的演化过程中,我们只需要替换那些
         容易变化的部分,如果这些部分是已经被封装好的,那么替换起来也相对容易。而变化之外是稳定的部分。在系统的演变过程,稳定的部分是不需要改变的。</p>
    <h1>使用回调函数</h1>
    <script>
       //arrayMap函数的作用是把一个数组“映射”为另一个函数。映射的步骤是不变的,而映射的规则是可变的,于是我们把这部分规则放在回调函数中,传入arrayMap函数:
       var arrayMap = function( ary, callback ){
          var i = 0,
              length = ary.length,
              value,
              res = [];
          
          for( ; i < length; i++ ){
             value = callback( i, ary[ i ] );
             res.push( value );
          }
              
          return res;
       };
       
       var a = arrayMap( [ 1, 2, 3, 34 ], function( i, n ){
          return n*2;
       } );
       
       console.log( a );
    </script>
    <h1>设计模式中的开放——封闭原则</h1>
    <p>1.发布——订阅模式</p>
    <p>2.模板方法模式</p>
    <p>3.策略模式</p>
    <p>4.代理模式</p>
    <p>5.职责链模式</p>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值