InterView - MVC模式

来源:互联网 发布:mac tex 编辑:程序博客网 时间:2024/06/05 11:01

说说MVC模式的原理,Android SDK中有哪些组件使用到了MVC模式,其基本原理是什么?

MVC的基本原理就是通过Controller连接View和Model。也就是说,当View中显示的数据变化时(如ListView要删除某个列表项),会通知Controller,而不是直接通知Model。

这时Controller接到View的通知后,会在Model中采取相应的动作(如删除数据库中的某条记录)。如果模型的数据发生变化(如插入,删除数据库中的记录),会将变化通知控制器,然后控制器会通知视图重新显示数据。

使用MVC模式可以将显示部分与数据部分分离,这样当更换视图或模型时可以不影响对方,更有利于程序的维护。

在Android SDK中使用MVC模式的组件非常多。例如,所有的列表控制(ListView,Spinner,GridView等)都采用MVC模式与数据交互。在Android中MVC中的V就代表这些组件,而M则代表各种数据源以及操作数据库的库。C则代表Adapter类。Android中的Adapter类分很多程度,但都拥有共同的接口。这些Adapter类主要包括BaseAdapter,SimpleAdapter,SimpleCursorAdapter,ArrayAdapter,CursorAdapter等。它们分别对应不同的数据源,例如,ArrayAdapter对应List和数组数据源,而CursorAdapter对应Cursor对象(一般是从数据库中获取的记录集)。这些Adapter类都需要使用getView方法返回当前列表项显示的View对象。当Model发生改变时,会调用 BaseAdapter.notifyDataSetChanged方法通知组件数据已变化,这时Adapter会调用getView方法用于重新显示组件的内容。当组件中显示的数据变化时,如删除一个项表项,组建会通过Adapter中的方法删除Model中相应的记录,然后再调用BaseAdapter.notifyDataSetChanged方法使组件中显示的数据发生变化。总之一句话,无论是数据变化,还是组件中显示的数据变化,都需要将Adapter作为桥梁来达到View和Model之间同步的目的。

0 0