码迷,mamicode.com
首页 > 其他好文 > 详细

前端用到的设计模式之开闭原则. 里氏代换原则

时间:2018-12-14 22:51:30      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:fun   span   prot   res   为什么   子类   复杂   jquery   UNC   

开闭原则,如果jQuery源码稍微了解,肯定知道它的应用了.

一个模块----函数或对象,应该凭着经验来判断, 对扩展开放,对修改关闭.------

一般用继承实现扩展,用闭包来实现关闭.

为什么开闭原则?它跟复杂度有什么关系,?

复杂度,就是一个函数里包含的功能个数;当开闭原则不遵守时,想扩展功能,必然去原来的函数里添加代码,导致原来的函数功能增加.

 

里氏代换原则:是对开闭原则的补充,子类可以扩展父类,但不可改变父类.

function changFangxing(height,width){
this.width = 0;
this.height = 0;
this.setWidth = function(width){
this.width = width;
};
this.setHeight = function(height){
this.height = height
}
this.getWidth = function (){
return this.width
}
this.getHeight = function(){
return this.height
}
}
zhengfangxing.prototype = new changFangxing();

function zhengfangxing(){
this.setHeight = function(height){
this.width = height;
this.height = height;
}
this.setWidth = function(width){
this.setHeight(width)
}
}

function resetSize(o){
while(o.getHeight() < o.getWidth()){
o.setHeight(o.getWidth + 1)
}
console.log(‘over‘)
}
var oCh = new changFangxing(100,200);
resetSize(oCh)
var oZh = new zhengfangxing()
oZh.setHeight(100)
resetSize(oZh)//会是死循环

前端用到的设计模式之开闭原则. 里氏代换原则

标签:fun   span   prot   res   为什么   子类   复杂   jquery   UNC   

原文地址:https://www.cnblogs.com/dangdanghepingping/p/10121783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!