<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>
js开放——封闭模式
最新推荐文章于 2022-10-17 16:44:47 发布