【设计模式】面向对象小结——接口、泛型和委托

     上一篇文章,通过一张概括性导图,总结性的讲解了一下我对面向对象的理解,以及重写与重载的区别。


     这篇文章的主要内容是写,我对面向对象功能:接口、泛型和委托的理解。。很多人都认为,我不使用它们,照样能实现程序想要的功能,为什么还要用它们?可以这么说,如果要想混IT行业,那么,我们就要成为专业人员。那么,我们所写的代码就不仅仅是实现其功能那么简单了,我们还要提高程序的性能,更重要的是,我们所写的代码是给别人看的,要让别人看得懂,实现团队合作。。接口、泛型和委托让我们的代码更结构化、专业化。。

 

     接口

     接口定义

     譬如定义了一个汽车的接口,有轮子,有零件的定义,如果要实现写一个奔驰的类,实现这个接口,就必须实现轮子和零件的定义。再写一个奥迪的类,再继承这个接口,那么也必须实现轮子和零件的定义。

     如果不用接口,那么我编写了奔驰类,可能只有实现了轮子的方法,但忘记了编写零件的方法,那么就不能生产出奔驰。

     接口好处

     不同的程序员编写代码,就有可能出现方法名称不同问题,那么别人调用的时候就会很麻烦。

比如很多人共同开发一个产品,大家分工协作。但是彼此的程序怎么才能很好的衔接起来了呢?比如你使用我编写的一个函数,但是事先你不知道我是怎么编写的,你是没有办法在你的程序中嵌入我的代码。

     但是如果大家都是用接口,你就可以在你的代码中使用借口定义好的函数,而在实际运行的时候,你在调用我编写的函数,因为他们的名称,参数,返回值都一样,所以运行起来没有问题。开发效率大大提升了。

     总的来说,我认为接口就是起一个规范作用,让程序流程更加清晰,它能降低耦合,提高扩展性,使开发效率大大提升,而且,非常适合开发大型项目。

 

     泛型

     要理解泛型,就必须了解它的前身——集合类(如:ArrayList集合)。集合类是可以代替数组以便灵活管理对象组。注意这里的用词,集合类是个数组(样的东西),集合类用来存储对象。
     集合好处:1、根据使用大小,按需动态增加

                       2、可随意添加、插入或移除某一范围的元素

     缺点:集合类型不安全,不管是什么类型的对象都能接受。

     尤其是ArrayList对于存放值类型的数据,比如int、string等。用ArrayList就意味着都需要将值类型装箱为Object对象,当使用时,还需要执行拆箱操作,这就带来了很大的性能损耗

     为避免集合的缺点,在Net2.0中引入了泛型。泛型就是定义了返回类型的集合类,毋庸置疑,泛型还是个集合,不过它是个确定了存储对象类型的集合。这样,就绕过了装箱拆箱动作,也不会产生拆箱错误。

     可以这样认为,集合类是泛型的基类部分,泛型新引入的部分是对集合基类的多态扩展。

     总的来说,泛型使程序在性能上得到提升。。


     委托

     我们可以这样理解,委托是方法的指针,可以把方法当参数用。适合用在某时或某种情况执行某些事,而这些事你事先并不知道是啥。

     用现实生活中的示例做比喻:一个律师能替人打官司,他可以打任何类型的官司,但只有原告委托律师打官司时律师才知道自己要打什么类型的官司,所以律师就是一个委托。

     什么时候使用

     1、相当于用方法作为另一方法参数(类似于C的函数指针)
     2、在两个不能直接调用的方法中作为桥梁
     3、当不知道方法具体实现什么时使用委托,如:事件中使用委托


     小结

     对于面向对象的总结,先暂时告一段落,以后边学边归纳。接下来我就要开始学习设计模式了,希望我能一如既往的坚持,一如既往的热情。。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值