首页 > 编程语言 >java静态代理模式

java静态代理模式

时间:2024-04-18 15:47:37浏览次数:25  
标签:Host java 静态 void 代理 host rent public Proxy

通过模拟租房来展现静态代理模式

  • 租房接口
//租房
public interface Rent {
    public void rent();
}
  • 被代理的真实角色房东
//房东
public class Host implements Rent {

    @Override
    public void rent() {
        System.out.println("房东要出租房租");
    }
}
  • 代理角色
public class Proxy implements Rent {
    private Host  host;

    /*public Proxy() {
    }*/

    public Proxy(Host host) {
        this.host = host;
    }

    @Override
    public void rent() {
        seeHouse();
        host.rent();
        hetong();
        fare();
    }

    //看房
    public void seeHouse(){
        System.out.println("中介带你看房");
    }

    //合同
    public void hetong(){
        System.out.println("签租赁合同");
    }

    //收中介费
    public void fare(){
        System.out.println("收中介费");
    }
}
  • 通过客户端访问
public class Client {
    public static void main(String[] args) {
        //房东要出租房子
        Host host = new Host();
//        host.rent();
        //代理
        Proxy proxy = new Proxy(host);
        proxy.rent();
    }
}

输出结果:
中介带你看房
房东要出租房租
签租赁合同
收中介费

标签:Host,java,静态,void,代理,host,rent,public,Proxy
From: https://www.cnblogs.com/DuWenjie/p/18143623

相关文章

  • 如何在HTML中使用JavaScript:从基础到高级的全面指南!
    JavaScript是一种轻量级的编程语言,通常用于网页开发,以增强用户界面的交互性和动态性。然而在HTML中,有多种方法可以嵌入和使用JavaScript代码。本文就带大家深入了解如何在HTML中使用JavaScript。一、使用script标签要在HTML中使用JavaScript,我们需要使用<script>标签。这个标......
  • 找win电脑代理地址
    参考:https://blog.csdn.net/xc_zhou/article/details/1350056731.进入控制面板2.网络状态3.Internet属性4.局域网设置 ......
  • centos7 修改ip地址 变为静态地址
    1、切换到root用户2、查看IP地址注:192.168.0.100是改以后的地址了,实际修改前查看的应该是修改前的ip地址3、修改ip地址cd  /etc/sysconfig/network-scripts/vi ifcfg-ens33修改红色部分 4、重启网卡 service network restart搞定 ......
  • 34-Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别
    需求:在开发过程中,经常会遇到的一个问题是,需要判断某个字符串是不是对象的某个成员属性名,然后根据判断结果去操作这个成员属性参考教程:Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别_javadeclaredfields-CSDN博客 可以通过以下方法:getFields(): 获......
  • java 打的jar 变小
    第1步:将第三方Jar单独存放,使用下面的命令,把依赖的包放到D:\temp\lib:mvndependency:copy-dependencies-DoutputDirectory=E:\temp\lib-DincludeScope=runtime注意:在idea里面配置一定要取消 mvn,不然会报错,idea会自动加上mvn   第2步:单独打包我们自己写的代码,修改......
  • 使用squid代理上网
    背景有个客户在云上买了若干云服务器,和1个公网ip,但是他希望所有服务器都能访问外网。可是并没有采购NAT网关,所有退而求其次,使用squid代理的方式实现所有无公网ip的云服务器代理上网。规划 具体步骤1、选其中一台主机绑定公网ip,使其具备访问公网的能力,我们选择192.168.1.5这......
  • java桥接模式案例
    桥接模式(BridgePattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立变化。在桥接模式中,抽象类和它的实现类之间使用组合/聚合关系,而不是继承关系。这样,客户端代码可以针对抽象编程,而实现细节则可以在运行时动态地指定。场景:假设我们要设计一个图形绘制系统......
  • java play框架get Start
    背景:一个老板找到我,他有一个项目是用play框架写的,我从来没有听说java还有一个play框架。回来以后我去网上查了一下,play框架是一个轻量级的全栈开发框架,完全背离了传统servlet的风格。play框架在国内使用并不多,使用简单易上手,开发大型项目也能胜任,这样的项目原来设计者设计完......
  • java使用Workbook workbook = new XSSFWorkbook(inputStream);导出数据频繁GC
    由于xlsx底层使用xml存储,占用内存会比较大,官方也意识到这个问题,在3.8版本之后,提供了SXSSFWorkbook来优化写性能原来代码Workbookworkbook= newXSSFWorkbook(inputStream);优化后代码Workbookworkbook= newSXSSFWorkbook(newXSSFWorkbook(inputStream));此处有坑,请往......
  • java代码审计跨站脚本(XSS)--反射型
    一、基础:跨站脚本(Xss)一、原理:恶意攻击者往web页面里插入恶意js代码,而在服务端没有对数据进行严格的过滤。当用户浏览页面时,js代码必须在该html页面中(hrml必须要存在这个而已艾玛),从而达到攻击用户的目的。(攻击者构造的的js代码会被当作正常的HTML、JS代码被解析,执行Js脚本实现攻......