当前位置:首页 > 门店拓客 > 正文内容

桥接和代理的区别

wxianyue4小时前门店拓客454
国内最强的AI写作工具,帮你写爆款文案

桥接模式( )和代理模式(Proxy )是两种常用的设计模式,尽管它们在某些情况下可能看起来相似代理模式,但它们的目的和应用场景是不同的。

桥接模式( ) 目的

桥接模式的主要目的是将抽象部分与它的实现部分分离,使它们可以独立地变化。这有助于减少类之间的耦合,从而使代码更具可扩展性和维护性。

结构

桥接模式通常涉及以下几个部分:

抽象类():定义了抽象部分的接口,并保存一个对实现部分对象的引用。实现类接口():定义了实现部分的接口。具体实现类():实现 接口。扩充抽象类():扩展抽象类,通常会调用实现部分的操作。 示例

一个典型的例子是图形应用程序,其中图形可以是不同的形状(如圆形、矩形),并且可以使用不同的绘制方法(如在屏幕上绘制或打印到纸张上)。

// Implementor
interface DrawingAPI {
    void drawCircle(double x, double y, double radius);
}
// ConcreteImplementor A
class DrawingAPI1 implements DrawingAPI {
    public void drawCircle(double x, double y, double radius) {
        System.out.println("API1.circle at " + x + ":" + y + " radius " + radius);
    }
}
// ConcreteImplementor B
class DrawingAPI2 implements DrawingAPI {
    public void drawCircle(double x, double y, double radius) {
        System.out.println("API2.circle at " + x + ":" + y + " radius " + radius);
    }
}
// Abstraction
abstract class Shape {
    protected DrawingAPI drawingAPI;
    protected Shape(DrawingAPI drawingAPI) {
        this.drawingAPI = drawingAPI;
    }
    public abstract void draw();
    public abstract void resizeByPercentage(double pct);
}
// RefinedAbstraction
class CircleShape extends Shape {
    private double x, y, radius;
    public CircleShape(double x, double y, double radius, DrawingAPI drawingAPI) {
        super(drawingAPI);
        this.x = x;
        this.y = y;
        this.radius = radius;
    }
    public void draw() {
        drawingAPI.drawCircle(x, y, radius);
    }
    public void resizeByPercentage(double pct) {
        radius *= (1.0 + pct / 100.0);
    }
}

代理模式(Proxy ) 目的

代理模式的主要目的是为另一个对象提供一个替身或占位符,以控制对这个对象的访问。代理模式可以用于多种用途,包括懒加载、访问控制、日志记录等。

结构

代理模式通常涉及以下几个部分:

主题接口():定义了代理类和实际类的共同接口。真实类():实现了主题接口可以帮你写爆款文案的AI系统,表示被代理的真实对象。代理类(Proxy):也实现了主题接口,并持有对真实类的引用,通过代理类控制对真实类的访问。 示例

一个典型的例子是图像查看器应用程序,其中图像可能很大,加载起来需要时间。我们可以使用代理模式来实现延迟加载图像。

// Subject
interface Image {
    void display();
}
// RealSubject
class RealImage implements Image {
    private String filename;
    public RealImage(String filename) {
        this.filename = filename;
        loadFromDisk();
    }
    private void loadFromDisk() {
        System.out.println("Loading " + filename);
    }
    public void display() {
        System.out.println("Displaying " + filename);
    }
}
// Proxy
class ProxyImage implements Image {
    private RealImage realImage;
    private String filename;
    public ProxyImage(String filename) {
        this.filename = filename;
    }
    public void display() {
        if (realImage == null) {
            realImage = new RealImage(filename);
        }
        realImage.display();
    }
}

区别总结

目的不同:

使用场景不同:

实现方式不同:

通过理解这两种模式的目的、结构和使用场景代理模式,可以更好地选择合适的模式来解决实际问题。

---- 文章由 生成

手机浏览,点击图片保存二维码到相册,然后打开微信扫一扫选择本二维码图片就可以进入,电脑端微信“扫一扫”二维码,进入找聊天搭子平台,里面有找饭搭子、找对象、找陪伴服务等等

扫描二维码推送至手机访问。

版权声明:本文由小猪信息平台发布,如需转载请注明出处。

本文链接:https://pplcom.com/post/59135.html

分享给朋友:

相关文章

2022年实体行业最新的营销计划是什么?

2022年实体行业最新的营销计划是什么?

从2019年低疫情爆发开始,其实我们都很清楚知道现在实体门店生意越来越难做。然而很多人都在咨询有没有什么好的营销方案能解决当下的问题的。自己做过调查外面营销公司一大片,营销方案,营销系统等等公司多如牛...

支付宝商业能力“交卷”:促零售商降本增收各60%,延伸线上场景引流抗疫

支付宝商业能力“交卷”:促零售商降本增收各60%,延伸线上场景引流抗疫

数字化转型已是大势所趋,不少零售企业开始重点拓展线上渠道、挖掘新的流量来源,希望做到线上线下融合发展。尤其是新型冠状病毒疫情爆发,使得实体店面临到店客流下滑等困局,诸多零售操盘者表示决心加速数字化转型...

华润/万达/沃尔玛等线下零售,如何利用微信裂变给门店引流?

华润/万达/沃尔玛等线下零售,如何利用微信裂变给门店引流?

当线下门店遇上互联网玩法,它们将碰撞出怎样的火花呢?它们造成的传播效果、引流效果又如何呢?本文将告诉我们实现方法与实现效果。 线下的“购物中心”在策划线上传播活动,普遍都会遇到一个问题:很难调动所有...

丽人堂蒋毅:做社区店,“引流”其实是个伪概念 | 问渠三湘④

丽人堂蒋毅:做社区店,“引流”其实是个伪概念 | 问渠三湘④

导读 “当下化妆品店在快节奏发展速度中,应该不忘初心,摆脱用价格竞争的误区,回归到提高专业性上来。”蒋毅表示。 “化妆品专营店的红利期已经开始消退,经营者也应该以平常心态对待利润的下滑。”湖南株洲丽人...

沉淀8000w+用户、1年营收过百亿,这个品牌的私域有多牛?

沉淀8000w+用户、1年营收过百亿,这个品牌的私域有多牛?

声明:本文来自于微信公众号运营研究社公众号(ID:U_quan),编辑 |杨佩汶 设计 |王浩南,授权站长之家转载发布。 从深圳起家的百果园,自 2001 年开始,经过了近 20 多年的发展,成为了中...

高端卖场不再是香饽饽 卫浴店面选址逐渐多元化

高端卖场不再是香饽饽 卫浴店面选址逐渐多元化

提要:因房地产不景气,家居建材需求下滑,再加上多数消费者更为注重产品性价比,高端建材卖场人流稀少已成为一种常态,在传统企业心中的分量也渐渐有减轻之势。不管店面选址如何发生变化,最终还是要回归到合理的成...