当你问我什么叫抽屉原理,你需要先了解一下抽屉原理是什么。
抽屉原理在程序设计中有两种:
一种是基于对象的(对象一般都包含数据和操作,我们将这种结构称为对象的指针),一种是基于事件的(事件驱动的,这种结构叫做事件驱动结构)。
根据这个概念,当我们在程序中设计了一个或者多个功能模块后,由于业务代码量较大或复杂度较高而不得不将一些部分或模块写到主代码中去,这些部分可以是一个类或一个子类。
根据抽屉原理的概念与其特点,当我们编写系统功能模块时:
将这个类或者子类放在一个地方即可;当我们在编写过程中需要调用这个类或者子类时:
1、如果不需要调用,我们可以直接抛出,无需调用类或子类;
(因为是事件驱动,所以可以直接抛出。即一个类或者子类,然后它就是事件驱动程序的输入。
如果没有,我们可以将这个类或子类放到一个更大的范围内。
也就是说一个抽屉里可以放很多的东西。)
2、当用户需要使用某个功能时,他可以通过该抽屉来实现该功能;
(1)对象指针:是一种基于对象的结构(对象通常都包含数据和操作,对象指针就是指一组指针,一般表示一个方法、一组事件或者一个值);
(2)基于事件驱动结构:即基于事件的一种结构,就是以事件为中心的类(子类)。
2、如果需要调用则需要调用一个外部方法,这个方法会返回一条消息。
(具体的接口可以是一个外部方法,也可以是一个内部方法。例如你可以调用外部的test.pr int ln,然后给出结果,但是返回的消息只有一条返回消息,这样就会有很多个方法。
< a>将这个类或子类放在一个地方即可;
< b>不需要将这个类或者子类写到主代码中去;
< c>只需要一个外部接口获取该数据即可;
< d>只需获取一个外部事件调用接口即可,例如你只需要对用户使用功能模块时返回的数据进行操作就行了;
3、如果我们要调用这个外部方法的话就需要在构造函数中构造函数使用方法时给这个对象提供相关的信息,比如调用什么数据类型等。
(我们需要定义一个内部对象,比如对象的名字、属性等,当系统在调用外部方法时我们只需要给外部对象提供一个指针即可。)
a)当系统调用了内部的方法,比如使用一个参数来指定一个类的名称时:
(1)当调用了外部类的引用时,首先我们要将这个类放到这个接口中去;
(2)调用这类方法后,我们也需要将它定义成该对象的引用:
(3)如果调用了外部类而不是系统内部类子类的成员或指针的话,那么我们将调用其成员函数(即调用了这类 API);
b)如果调用了系统内部类子类或成员函数时,就给这个对象直接提供接口。