当前位置: 首页 > news >正文

Java类关系之代理(代理模式)

在Java中,如果一个类需要使用另一个类的方法,我们可以使用继承的方式实现,那么问题来了,如果这个类恰恰在逻辑关系上不能使用继承怎么办呢?比如说,飞机和控制台这两个类,控制台的方法有上下左右前进后退,飞机需要使用控制台的方法,使用继承合适吗?很显然,这样是不合理的。

这时候,我们可以用飞机这个类来代理控制台这个类,啥意思呢?

贴上代码就明白了!
控制台类:

public class PlaneContral {public void up(int v){System.out.println("飞机以"+v+"km/h的速度上升");}public void down(int v){System.out.println("飞机以"+v+"km/h的速度下降");}public void forward(int v){System.out.println("飞机以"+v+"km/h的速度前进");}public void back(int v){System.out.println("飞机以"+v+"km/h的速度后退");}public void left(int v){System.out.println("飞机以"+v+"km/h的速度左转");}public void right(int v){System.out.println("飞机以"+v+"km/h的速度右转");}
}

飞机类:

public class Plane {private PlaneContral pc = new PlaneContral();public void up(int v){pc.up(v);}public void down(int v){pc.down(v);}public void forward(int v){pc.forward(v);}public void back(int v){pc.back(v);}public void left(int v){pc.left(v);}public void right(int v){pc.right(v);}public static void main(String[] args) {// TODO Auto-generated method stubPlane p = new Plane();p.forward(200);p.back(100);}
}

就是在飞机这个类的成员变量中实例化一个控制台的对象,再用飞机类的方法来代理控制台的方法。

http://www.lryc.cn/news/97911.html

相关文章:

  • java: 无法访问redis.clients.jedis.JedisPoolConfig
  • 基于java中学教务管理系统设计与实现
  • vscode设置java -Xmx最大堆内存
  • 组件开发系列--Apache Commons Chain
  • 60 # http 的基本概念
  • 云计算迎来中场战役,MaaS或将成为弯道超车“新赛点”
  • 最新基于Citespace、vosviewer、R语言的文献计量学可视化分析技术及全流程文献可视化SCI论文高效写作方法
  • Hive调优集锦(2)
  • 一文谈谈Git
  • 嵌入式数据库之SQLite
  • idea下tomcat运行乱码问题解决方法
  • 人工智能TensorFlow MNIST手写数字识别——实战篇
  • Vue 本地应用-计数器
  • 深入了解HTTP代理在网络爬虫与SEO实践中的角色
  • 使用docker搭建nacos
  • flask中的常用装饰器
  • SQL基础语法 | 增删改查、分组、排序、limit
  • QT: 用定时器完成闹钟的实现
  • Boyer-Moore 投票算法
  • C# 翻转二叉树
  • RocketMQ教程-(5)-功能特性-消费者分类
  • Kafka原理剖析
  • word怎么转换成pdf?分享几种转换方法
  • 基于XDMA 中断模式的 PCIE3.0 QT上位机与FPGA数据交互架构 提供工程源码和QT上位机源码
  • Vue 中通用的 css 列表入场动画效果
  • 微分流形2:流形上的矢量场和张量场
  • C++数组、向量和列表的练习
  • 视频剪辑矩阵分发系统Unable to load FFProbe报错技术处理?
  • Docker轻量级可视化工具Portainer
  • 功率放大器在电光调制中的应用有哪些