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

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

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

     接口

接口定义

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

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

接口好处

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

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

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

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

     泛型

要理解泛型,就必须了解它的前身——集合类(如:ArrayList集合)。集合类是可以代替数组以便灵活管理对象组。注意这里的用词,集合类是个数组(样的东西),集合类用来存储对象。

集合好处:1、根据使用大小,按需动态增加

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

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

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

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

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

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

委托

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

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

什么时候使用

1、相当于用方法作为另一方法参数(类似于C的函数指针)

2、在两个不能直接调用的方法中作为桥梁

3、当不知道方法具体实现什么时使用委托,如:事件中使用委托

小结

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

时间: 2024-10-12 22:17:03

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

面向对象的思想 泛型和委托

面向对象是一种思想,他的技术体现,可以体现在代码中使用泛型,方法与方法之间的调用不是直接调用,而是使用委托. 使用了泛型,就可以不用考虑数据的类型,从而做到统一的处理.就比如我们以前写代码,每个实体类对应一个DAL,然后每个DAL里面都有增删改查的方法,每个方法都是针对固定的类型来做的.如Update实体A,则一定只能更新实体A.但是使用了泛型就可以Update(<T>),这个T是什么类型,只要你指定什么类型,他就是什么类型,T是实体A,就更新实体A,T是实体B就更新实体B. 只要类型不确定,

【设计模式】面向对象小结——重写与重载

通过对<大话设计模式>附录的学习,让我对面向对象技术有了更深一层的理解!下面是我画的一张导图,是我对面向对象技术的总体概括.这篇文章的主要内容,就是围绕这张图,来讲述我的理解.. 由图得知,我将面向对象分为三个部分:基本.特点及其功能.它们之间像是一种层层递进的关系. 如果没有基本的抽象思想,将具有相同属性和功能的对象进行整合,那么也就没有面向对象技术,更不可能产生面向对象特点.所以,抽象是核心,是基本:如果没有封装.继承和多态,那么类与类.对象与对象.类与对象之间,就没有了联系,就不能实现对

设计模式の面向对象

所谓的设计原则也好,设计模式也罢,无非是在面向对象的前提下产生的.而面向对象的前提是抽象,面向对象的三大特征是封装.继承.多态.为了从本质上理解设计模式,下面我们分析一下这些概念之间的关系.请看下图: 面向对象思想的前提是抽象,从现实世界中抽象出一些对象或者类的共性之后封装成类或者抽象类或者接口.这些类也罢接口也好是为了增加代码的复用性,既然是为了复用,当然需要子类来继承.在继承的过程中为了满足子类个性化的需求,于是多态就自然的出现了.为了更好地体现面向对象的思想我们有了一系列的设计原则,而设计

C语言的设计模式-面向对象机制的实现(一)

C语言的设计模式-面向对象机制的实现(一) 为什么要用C来模拟面向对象的机制,在实际的工作中我们往往在感慨一些面向对象的经典设计模式由于C语言的限制无法使用,其实通过简单的模拟面向对象的行为,在C语言中也可以使用这些模式. 1:类的构建 类描述了所创建的对象共同的属性和方法.我们在一个源文件中通过把数据和操作进行适当的组织来完成类的模拟. /*类的数据*/typedef struct SQUARE_S SQUARE_T; struct SQUARE_S { void (*draw)(void*)

接口,泛型,可变参数在代码向上抽去中的应用探究

JAVA作为一种面向对象的语言,类和对象可以说是搭建起JAVA体系的基本框架,我们可以将类看做是对众多实体对象共性的向上抽取,而接口则是对类共性的向上抽取,我将接口理解为一种规则,一种规范,同时也是多态的应用中我们作为形式参数传递的最顶层的父类,因此接口的功能非常强大(能装B),我们在sun公司定义的API中可以经常看到它的身影,它也是架构师手中搭建框架的利器,因此以后我们会经常使用到它(能装B). ------------------------------------------------

面向对象的思想 泛型和托付

面向对象是一种思想,他的技术体现,能够体如今代码中使用泛型,方法与方法之间的调用不是直接调用,而是使用托付. 使用了泛型,就能够不用考虑数据的类型,从而做到统一的处理.就比方我们曾经写代码,每一个实体类相应一个DAL,然后每一个DAL里面都有增删改查的方法,每一个方法都是针对固定的类型来做的.如Update实体A,则一定仅仅能更新实体A.可是使用了泛型就能够Update(<T>),这个T是什么类型,仅仅要你指定什么类型,他就是什么类型,T是实体A,就更新实体A,T是实体B就更新实体B. 仅仅要

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

Java面向对象程序设计--接口和内部类

1.接口的定义: In the Java programming language, an interface is not a class but a set of requirements for classes that want to conform the interface. 说明: 1) Interface 不是class,虽然interface具有class的一些特点,例如能够继承,能够定义相同类型的变量,而且和C++的abstract class非常像,但Java 的inter

14.6面向对象小结

面向对象小结 1.如何创建类class 类名:pass 2.创建方法构造方法,init(self,arg)obj = 类('a1')普通方法obj = 类('xxx')obj.普通方法名() 3.面向对象三大特性之一:封装 class Bar: def __init__(self, n,a): self.name = n self.age = a self.xue = 'o' b1 = Bar('a1', 123) b2 = Bar('a2', 456) 4.适用场景:如果多个函数中有一些相同参