美文网首页
桥接模式VS代理模式

桥接模式VS代理模式

作者: 小天使999999 | 来源:发表于2023-10-22 23:28 被阅读0次

桥接模式与代理模式区别如下:

桥接模式(Bridge Pattern)是指将抽象和实现解耦,让它们可以独立变化。一个类存在两个(或多个)独立变化的维度,通过组合的方式,让这两个(或多个)维度可以独立进行扩展。
代理模式(Proxy Pattern)是指用一个代理对象来代替对真实对象的引用。主要用来控制对一个对象的访问,同时又能保证安全。

桥接模式示例:

public interface Shape {
    void draw();
}

public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing Circle...");
    }
}

public class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing Rectangle...");
    }
}

public class ShapeBridge implements Shape {
    private int type; // 类型,1表示圆形,2表示矩形
    public ShapeBridge(int type) {
        this.type = type;
    }
    @Override
    public void draw() {
        if(type == 1) {
            Circle circle = new Circle();
            circle.draw();
        } else if(type == 2) {
            Rectangle rectangle = new Rectangle();
            rectangle.draw();
        } else {
            System.out.println("Invalid type!");
        }
    }
}

在上述代码中,Shape是一个接口,Circle和Rectangle是实现了Shape接口的具体类,它们分别代表圆形和矩形。ShapeBridge是一个桥接类,它也实现了Shape接口,并通过type属性来区分是圆形还是矩形,在draw()方法中根据type属性的值创建对应的圆形或矩形对象,并调用它们的draw()方法进行绘制。这样,通过桥接模式,我们可以很方便地扩展出更多的形状对象。

代理模式示例:

public interface IUserService {
    void login();
}

public class UserService implements IUserService {
    @Override
    public void login() {
        System.out.println("Logging in...");
    }
}

public class UserServiceProxy implements IUserService {
    private IUserService userService;
    public UserServiceProxy(IUserService userService) {
        this.userService = userService;
    }
    @Override
    public void login() {
        System.out.println("Checking credentials..."); // 进行一些前置处理,例如验证用户信息等。
        userService.login(); // 调用真实的服务对象的方法进行登录。
    }
}

在上述代码中,IUserService是一个接口,UserService是实现了IUserService接口的具体类,它代表一个真实的用户服务对象。UserServiceProxy是一个代理类,它也实现了IUserService接口,并在login()方法中进行一些前置处理(例如验证用户信息等),然后调用真实的服务对象的login()方法进行登录。通过代理模式,我们可以在调用真实的服务对象之前加入一些额外的逻辑处理,从而增强系统的灵活性和可维护性。

相关文章

  • 桥接模式 VS 装饰器模式、状态模式 VS 策略模式的微妙之处

    桥接模式 VS 装饰器模式、状态模式 VS 策略模式的微妙之处 Foundations of Software E...

  • 常用设计模式 2018-09-15

    目录 代理模式 单例模式 命令模式 工厂模式 桥接模式 策略模式 装饰模式 观察者模式 门面模式 代理模式 静态代...

  • Java中的23种设计模式(二)

    (适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式)原文作者:终点 出处:Java之美[...

  • 设计模式

    实践:zookeeper 观察者模式JDBC 桥接模式SNMP Plugin 对象的适配器模式 、代理模式 创建型...

  • 设计模式分类汇总

    结构型 适配器模式 组合模式 桥接模式 代理模式 装饰者模式 门面模式 享元模式 行为型 责任链模式 命令模式 解...

  • 49 - 桥接模式详解

    桥接模式的代码实现非常简单,但是理解起来稍微有点难度,并且应用场景也比较局限,所以,相当于代理模式来说,桥接模式在...

  • 设计模式分类

    创建型模式->5种: 常用的 结构性模式->7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式...

  • Java面试经典题目六(网络知识及设计模式)

    设计模式(必知必会) 【1】你知道那些设计模式? 答:单例模式、观察者模式、MVC模式、工厂模式、桥接模式、代理模...

  • 设计模式(结构型模式)

    适配器模式、 装饰器模式、 代理模式、 外观模式、 桥接模式、 组合模式、 享元模式 适配器模式 即定义一个包装类...

  • 设计模式-结构型模式

    结构类模式包括适配器模式、桥接模式、组合模式、装饰模式、门面模式、享元模式和代理模式。 为什么叫结构类模式呢?因为...

网友评论

      本文标题:桥接模式VS代理模式

      本文链接:https://www.haomeiwen.com/subject/fsmdidtx.html