三分钟带您搞懂代理模式
全文共1439字,预计阅读时间:10分钟
定义:
- 住酒店不一定需要亲自到酒店去,还可以通过微信支付下的同程艺龙来订酒店。
- 我们可以通过中介去找房子,不用直接跟房东沟通(现实生活中,我们更希望直接跟房东沟通)
- 春运买票买不到,我们可以找黄牛替我们抢票
- 想访问国外的网站,可以使用代理服务器进行访问。
图解:
那么它们之间有什么区别呢?
实例:
代码:
/*** 酒店.** @author jialin.li* @date 2019-12-27 11:37*/ public interface Hotel {/** 订酒店 **/void hotelBooking(String name);/** 付款 **/double pay(); }
/*** 橘子酒店.** @author jialin.li* @date 2019-12-27 13:17*/ public class OrangeHotel implements Hotel {@Overridepublic void hotelBooking(String name) {System.out.println(name + ",欢迎入住橘子酒店");}@Overridepublic double pay() {return 120d;} }
/*** 同程艺龙** @author jialin.li* @date 2019-12-27 13:20*/ public class Elong implements Hotel{private Hotel hotel;public Elong() {hotel = new OrangeHotel();}@Overridepublic void hotelBooking(String name) {System.out.println(confirm(name));hotel.hotelBooking(name);System.out.println(callback(name));}@Overridepublic double pay() {return useHongbao(hotel.pay());}private String confirm(String name){return "亲爱的"+name+"您预定了橘子酒店,记得入住哦!";}private String callback(String name){return "亲爱的"+name+"您的入住已经结束,有问题请及时反馈!";}private double useHongbao(double price){return price - 50.0d;} }
/*** 测试类.** @author jialin.li* @date 2019-12-27 13:36*/ public class Main {public static void main(String[] args) {String xiaozhao = "小赵";Elong elong = new Elong();elong.hotelBooking(xiaozhao);System.out.print("共花费了:");System.out.println(elong.pay());} }
结果:
亲爱的小赵您预定了橘子酒店,记得入住哦! 小赵,欢迎入住橘子酒店 亲爱的小赵您的入住已经结束,有问题请及时反馈! 共花费了:70.0
有没有什么问题?
三分钟带您搞懂代理模式相关推荐
- 明显调用的表达式前的括号必须具有指针函数类型_每天三分钟带你搞懂C++基础Day5 处理类型 typedef、auto、decltype...
类型别名(type alias)一个名字,是某种类型的同义词.使用类型名有很多好处,能让复杂的类型名字变得简单明了,易于理解和使用. 有两种方法可用于定义类型别名.传统的方法是使用关键字typedef ...
- 三分钟带你搞懂什么是向上转型和向下转型
什么是向上转型? 通过在网上查了资料,和普遍的介绍,一句话总结就是"父类引用指向子类对象",例: Human h=new Human(); h.eat();//人类 Animal ...
- 三分钟带你搞懂Spring解耦和IOC
前言 回想写过的图书管理系统.租房系统.电影院卖票系统都是基于原生的JavaSE.OOP,没有用到任何框架,在层与层的关系中一个类要想获得与其他类的联系主要的方式还是靠new,这就导致层与层之间.对象 ...
- 三分钟带你弄懂slot插槽——vue进阶
文章目录 三分钟带你弄懂slot插槽--vue进阶 一.概述 程序员之死 什么是 slot插槽? 2.6.0 版本中的 slot 二.具名插槽 例子 效果图 代码 三.小惊喜 三分钟带你弄懂slot插 ...
- 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器
前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...
- 三分钟带你看懂prototype原型——ES6进阶
三分钟带你看懂prototype原型--ES6进阶 1. prototype 定义 2. new 构造函数 3. 存储 4. prototype 作用 1. prototype 定义 在JS中的类的实 ...
- 别再说不了解非接触液位传感器了?只需三分钟就能搞懂
非接触式液位传感器,顾名思义就是不用接触物体就能进行监测,从而避免遭到被监测物体的腐蚀等.那关于非接触式液位传感器,大家了解多少呢?今天TCOOP就来给大家详细介绍下,三分钟就能搞懂,快来看看吧! 一 ...
- 三分钟带你看懂HDMI接口的PCB设计
三分钟带你看懂HDMI接口的PCB设计 本文主要讲解的是HDMI的设计,包括作用和运用的总结,希望大家看了以后能轻松的应对各种HDMI方案的PCB设计. 一.什么是HDMI? 高清晰度多媒体接口(英文 ...
- 三分钟带你读懂 BERT
本文为 AI 研习社编译的技术博客,原标题 : BERT Technology introduced in 3-minutes 作者 | Suleiman Khan, Ph.D. 翻译 | 胡瑛皓.s ...
最新文章
- 文件格式和扩展名不匹配.文件可能已损坏_自媒体良器:音频文件批处理,FFmpeg一行搞定!果断收藏...
- 你的画像是怎么来的?推荐系统是如何找到相似用户的?
- [UVa10296]Jogging Trails
- 【python】解决:TypeError: can't send non-None value to a just-started generator
- 递归求n的阶层算法实现
- app启动页自动跳转源码_Jenkins集成appium自动化测试(Windows篇)
- 华为Matebook X Pro双系统升级bios后无法进入Linux的解决方案
- 使用JVM钩子函数关闭资源
- opencv识别圆的代码(转)
- python 启动参数_python启动参数
- 【故障处理】CRS-1153错误处理
- 重装驱动:Failed to initialize NVML: Driver/library version mismatch
- 解析JavaScript模拟事件的注意要点
- 3分钟搞懂什么是WPF。
- Android--NFC读写
- 深入理解JVM---JVM垃圾回收机制
- pubg解封验证计算机怎么验证,绝地求生解封教程
- w ndows 10关机快捷键,win10关机有什么快捷键 win10关机快捷键及使用小技巧【图文】...
- 首师大附中科创教育平台 我的刷题记录 3120 LJX的校园:入学典礼
- 计算机考研有什么公众号,大学生应该关注的公众号有哪些推荐?