代码封装

本文探讨了面向接口编程的概念,强调将行为封装在各自对象中的重要性,以提高代码的灵活性和可维护性。以页面切换为例,元素只需调用接口方法,而无需了解切换的具体实现。在JavaScript中,由于缺乏抽象类和接口,通常通过闭包来模拟封装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

封装,即隐藏对象的属性和实现细节,仅对外公开接口。

封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。

面向接口编程的写法,简单的说就是将行为封装分布在各个对象中,并让这些对象自己各自负责自己的行为,这也是面向对象设计的一个优点,就拿页面切换的效果来说,在某一时刻,元素A需要让页面进行切换,那么元素A不需要关心页面是怎么切换的,它只能要调用到一个接口方法能让页面切换就行了。JavaScript中没有抽象类与接口的支持,所以很大程度上实现JavaScript中没有抽象类与接口的支持,所以很大程度上实现封装都是靠闭包去模拟封装都是靠闭包去模拟。

例如:

function Swipe(container){
        var width = container.width();
        var height = container.height();
        var element = container.find(':first');
        var slides = element.find('li');
        var swipe = {};

        //设置ul实际长度
        element.css({
                width: (width*slides.length)+'px',
                height: height
        });

        //设置每一个li的宽度和高度都等于当前的显示容器的宽和高
        $.each(slides, function(index) {
                 var slide = slides.eq(index);
                 slide.css({
                        width: width + 'px',
                        height: height + 'px'
                 });
        });

        swipe.scrollTo = function(x,speed){
             element.css({
                     "transition-timing-function":'linear',
                     "transition-duration":speed+'ms',
                     "transform":'translate3d(-'+x+'px,0px,0px'
             }); 
             return this;  
        };

        return swipe;
}
页面布局与切换是一个整体,我们想调用切换的时候,并不关心其内部处理的手段,所以我们只需要提供一个可以调用的接口就可以,新建一个Swipe.js文件,内部定义一Swipe工厂方法,内部会产生一个swipe的滑动对象,暴露了scrollTo的接口。封装后,可以定义滚动的对象,滚动的距离,滚动的时间。对象不用关心是怎么切换的,它只需要调用一个切换接口即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值