设计模式_Java_适配器设计模式

来源:互联网 发布:大道寺知世家多有钱 编辑:程序博客网 时间:2024/06/10 08:30

一、什么是适配器?

  • 在使用监听器的时候, 需要定义一个类事件监听器接口.
  • 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
  • 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.

二、适配器原理

  • 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
  • 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
  • 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.

三、适配器设计模式举例

需求:和尚分为好和尚(唐僧)和花和尚(鲁智深)
和尚的功能有:打坐、念经、撞钟、习武
唐僧:打坐、念经、撞钟
鲁智深:习武

package com.soar.adapter;public class Demo1_Adapter {    /*     * 适配器设计模式     * 鲁智深(花和尚)     * 唐僧(好和尚)     */    public static void main(String[] args) {    }}interface heshang {    public void dazuo();            //打坐    public void nianjing();         //念经    public void zhuangzhong();      //撞钟    public void xiwu();             //习武}//声明成抽象的原因是不想让其他类创建本类对象,因为创建也没有意义,方法都是空的abstract class huaheshang implements heshang{           @Override    public void dazuo() {    }    @Override    public void nianjing() {    }    @Override    public void zhuangzhong() {    }    @Override    public void xiwu() {    }}class luzhishen extends huaheshang{    public void xiwu(){        System.out.println("倒拔垂杨柳");        System.out.println("拳打镇关西");        System.out.println("大闹野猪林");    }}class tangseng extends huaheshang{    @Override    public void dazuo() {        System.out.println("唐僧在打坐");    }    @Override    public void nianjing() {        System.out.println("唐僧在念经");    }    @Override    public void zhuangzhong() {        System.out.println("唐僧在撞钟");    }}
原创粉丝点击