Android 设计模式之适配器模式

来源:互联网 发布:全球最大电子书软件 编辑:程序博客网 时间:2024/03/29 23:15

       适配器模式将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。比较典型的例子就是电源接口,通过适配器可以来适配不同的插座。

意 图:

将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

适 用环 境:

  • 你想使用一个已经存在的类,而它的接口不符合你的需求。
  • 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。

类图:

         如上图所示,Adapter就是一个适配器,当Client需要实现某功能时,而原Adaptee有的接口又不能满足Client的需求,因此添加一个Adapter,将Adaptee中对应的接口包装成Client适用的接口。

        在Android 系统中,大量使用了适配器模式,如ListView、Gallery、GridView等都通过适配器模式来提供UI显示内容。下面是一个Adapter的示例:

public class AppsAdapter extends BaseAdapter {    --- ---    public AppsAdapter(Context context, List<MyAppInfor> appList) {     }    @Override    public int getCount() {          }    @Override    public Object getItem(int position) {            }    @Override    public long getItemId(int position) {           }    @Override    public View getView(int position, View convertView, ViewGroup parent) {            }   --- ---}
       在Gallery中使用了这个AppsAdapter,我们可以看出需要重写的对应方法包括getCount、getItem、getItemId、getView。Gallery就是类图中的Client,AppsAdapter是类图中的Adapter,很显然在AppsAdapter的构造函数中的appList是类图中的Adaptee。Client通过适配器AppsAdapter包装后的接口来方法获取appList中的内容。



0 0