首页 > 其他分享 >桥接模式

桥接模式

时间:2024-04-08 21:25:37浏览次数:17  
标签:桥接 brand 模式 public Phone call void Brand

 

1. 手机操作问题

  不同后记类型的不同品牌实现打电话功能

   传统解决方式

   缺点:如果此时想要在增加一种手机样式(旋转式),那么就需要在手机样式下同时在增加不同品牌的手机;同样如果想要增加一个品牌(huawei),那么就需要在每一种样式下增加品牌,会增加很多类;

 

2. 桥接模式

  将实现和抽象放在两个不同的类层次中,两个层次可以独立改变

 

public interface Brand {

    /**
     *  打电话
     */
    void call();
}
public class Xiaomi implements Brand {

    @Override
    public void call() {
        System.out.println("小米手机打电话");
    }
}
public class ViVo implements Brand {

    @Override
    public void call() {
        System.out.println("vivo手机打电话");
    }
}
public abstract class Phone {

    private Brand brand;

    public Phone(Brand brand) {
        this.brand = brand;
    }

    public void call(){
        this.brand.call();
    }
}
public class UpRightPhone extends Phone {

    public UpRightPhone(Brand brand) {
        super(brand);
    }

    @Override
    public void call() {
        super.call();
        System.out.println(" 直立手机 ");
    }
}
public class FoldedPhone extends Phone {


    public FoldedPhone(Brand brand) {
        super(brand);
    }

    @Override
    public void call() {
        super.call();
        System.out.println(" 折叠手机 ");
    }
}
public class Client {

    public static void main(String[] args) {
        Phone phone1 = new UpRightPhone(new ViVo());
        phone1.call();

        FoldedPhone phone2 = new FoldedPhone(new Xiaomi());
        phone2.call();
    }
}

  使用桥接模式,此时如果想要在增加一种旋转样式的手机,只需要继承Phone抽象类,重写call方法,不用像之前传统方式那样要写很多类。

标签:桥接,brand,模式,public,Phone,call,void,Brand
From: https://www.cnblogs.com/homle/p/18122616

相关文章

  • 设计模式之观察者模式讲解
    概念:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。抽象主题:或者叫被观察者,可以持有、增加、删除观察者对象。具体主题:实现抽象主题定义的操作,并定义一个状态,每当状态改变时,通知所有观察者。抽象观察者:为所有观察......
  • 设计模式 - 策略模式
    起初业务简单、随着业务增长所有相关业务代码处理逻辑都放置同一个对象中,通过策略模式以不通分类实现具体业务publicinterfaceIPlanVideoStrategy{Stringexecute(IntegertypeCode,IntegernodeId,List<String>qzTimeList);}publicclassPlanPlayBackContext{......
  • 沃连汇抖音本地生活盈利模式梳理报告
    一、项目名称抖音本地生活/抖音同城二、项目介绍上头支持“要坚持把发展经济的着力点放在实体经济上 ”,同时, 抖音与商家合作,大力发展“实体店+同城本地生活 ”,帮商家  获取同城流量、提高销售额。 目前,抖音同城有 5 类重度参与者:商家(以招商加盟为主)、实体店老......
  • HG6821M开启工厂模式
    本帖最后由小圆于2020-5-2219:16编辑开启不是永久的,是一次性的浏览器访问http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1,然后打开终端telnet192.168.1.1使用用户名:root密码:hg2x0登陆登陆成功之后cd/usr/protest/mftouch/usr/protest/mf/factory_......
  • 为大家整理最全的24种设计模式详解,必收藏
    设计模式六大原则 单一职责原则一个方法尽可能做一件事情,一般来说不应该让一个方法承担多个职责。单一职责原则的英文名称是SingleResponsibilityPrinciple,简称是SRP。单一职责原则的定义是:应该有且仅有一个原因引起类的变更。SRP的原话解释是:Thereshouldneverbemo......
  • 一个库帮你快速实现EF Core数据仓储模式
    https://www.cnblogs.com/Can-daydayup/p/18120034 思维导航前言EFCoreGenericRepository介绍值得推荐的.NETORM框架数据仓储(Repository)介绍类库特点项目源代码新建控制台应用相关类库安装新建UserInfo类新建数据库上下文类新建UserInfoService(包含常见CRUD)......
  • 浅尝设计模式
    设计模式三大类创建型模式工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式行为型模式策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备......
  • 宁波卓越绩效模式导入验收
    ......
  • oracle 数据库精简模式磁盘空间回收处理
            最近遇到的项目中,需要部署几套oracle19cRAC数据库,在进行存储磁盘卷划分的时候,发现只能分配精简卷模式的磁盘,出于性能以及安全考虑,咨询存储原厂答曰该powerstore存储只支持精简磁盘卷模式。    自oracle12c开始,asm开始支持精简卷模式,asm磁盘组......
  • 设计模式|责任链模式(Chain of Responsibility Pattern)
    文章目录结构优点缺点使用责任链的步骤示例有哪些知名框架采用了责任链模式责任链模式和链表有什么关联常见面试题责任链模式(ChainofResponsibilityPattern)是一种行为设计模式,它允许你创建一个对象链。请求将沿着这个链传递,直到有一个对象处理它为止。这种模式可以......