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

拼搏现实的明天。 2022-06-09 10:37 368阅读 0赞

一、什么是适配器?

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

二、适配器原理

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

三、适配器设计模式举例

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

  1. package com.soar.adapter;
  2. public class Demo1_Adapter {
  3. /*
  4. * 适配器设计模式
  5. * 鲁智深(花和尚)
  6. * 唐僧(好和尚)
  7. */
  8. public static void main(String[] args) {
  9. }
  10. }
  11. interface heshang {
  12. public void dazuo(); //打坐
  13. public void nianjing(); //念经
  14. public void zhuangzhong(); //撞钟
  15. public void xiwu(); //习武
  16. }
  17. //声明成抽象的原因是不想让其他类创建本类对象,因为创建也没有意义,方法都是空的
  18. abstract class huaheshang implements heshang{
  19. @Override
  20. public void dazuo() {
  21. }
  22. @Override
  23. public void nianjing() {
  24. }
  25. @Override
  26. public void zhuangzhong() {
  27. }
  28. @Override
  29. public void xiwu() {
  30. }
  31. }
  32. class luzhishen extends huaheshang{
  33. public void xiwu(){
  34. System.out.println("倒拔垂杨柳");
  35. System.out.println("拳打镇关西");
  36. System.out.println("大闹野猪林");
  37. }
  38. }
  39. class tangseng extends huaheshang{
  40. @Override
  41. public void dazuo() {
  42. System.out.println("唐僧在打坐");
  43. }
  44. @Override
  45. public void nianjing() {
  46. System.out.println("唐僧在念经");
  47. }
  48. @Override
  49. public void zhuangzhong() {
  50. System.out.println("唐僧在撞钟");
  51. }
  52. }

发表评论

表情:
评论列表 (有 0 条评论,368人围观)

还没有评论,来说两句吧...

相关阅读