首页 > 其他分享 >7) Bridge Pattern

7) Bridge Pattern

时间:2023-06-06 13:34:38浏览次数:65  
标签:Bridge Somebody Pattern class eat something public Something

类别:

 Structural Patterns

问题:

连连看的问题

 

不使用桥接,要写81 个类,使用桥接,只需要18个类

方案:

 

示例:

 

public class BridgePatternDemo {

    public static void main(String[] args) {
        Somebody sb = new Xiaohong(new Banana());
        sb.eat();
        sb = new Liming(new Apple());
        sb.eat();
    }
}

interface Something {
    public String getName();
}

class Apple implements Something {

    public String getName() {
        return "apple";
    }

}

class Banana implements Something {

    public String getName() {
        return "banana";
    }

}

abstract class Somebody {
    protected Something something;

    public Somebody(Something something) {
        this.something = something;
    }

    abstract public void eat();
}

class Xiaohong extends Somebody {

    public Xiaohong(Something something) {
        super(something);
    }

    @Override
    public void eat() {
        System.out.println("Xiaohong eat " + something.getName());
    }

}

class Liming extends Somebody {

    public Liming(Something something) {
        super(something);
    }

    @Override
    public void eat() {
        System.out.println("Liming eat " + something.getName());
    }

}

 

Xiaohong eat banana
Liming eat apple

 

应用:

 

不足:(

 

优化:)

 

标签:Bridge,Somebody,Pattern,class,eat,something,public,Something
From: https://www.cnblogs.com/zno2/p/6694821.html

相关文章

  • 6) Adapter Pattern
    类别: StructuralPattern问题:什么是接口?按照标准提供服务,其他想要使用该接口的要按照该标准接入服务什么是依赖?持有目标对象,拥有使用权(AuseB)数据线?数据线按USB标准接入充电宝,通过lightning提供充电服务手机?通过lightning标准接入数据线  客户端因种种限制只能接入......
  • 10) Decorator Pattern
    类别: StructuralPattern问题: 在不改变接口的前提下增加额外的服务方案:   示例:publicclassDecoratorPatternDemo{publicstaticvoidmain(String[]args){Shapecircle=newCircle();ShaperedCircle=newRedShapeDecorator(newC......
  • cpp: Bridge Pattern
     /*****************************************************************//***\fileGold.h*\brief桥接模式BridgePatternC++14*2023年6月3日涂聚文GeovinDuVisualStudio2022edit.*\authorgeovindu*\dateJune2023***********************......
  • log4j2<PatternLayout>子节点浅析
    log4j2<PatternLayout>子节点浅析 首先声明本文并不教您怎么用log4j2,仅仅只对<PatternLayout>子节点进行说明。要看懂本文需要对log4j2有一定的了解,至少能够知道<Appenders>、<Layouts>和<Loggers>的区别。本文主要参考对象为log4j2官方手册:《ApacheLog4j2v.2.1User'sGuide......
  • cpp: Proxy Pattern
     /*****************************************************************//***\fileGoldWebSite.h*\brief代理模式ProxyPatternC++14*2023年5月31日涂聚文GeovinDuVisualStudio2022edit.*\authorgeovindu*\dateMay2023******************......
  • kibana智能检索发送多次_msearch —— 配置index pattern,同时设置时间段,就知道到底是
    kibanasite/elasticsearch/log-*/_field_stats?level=indices   返回:{"_shards":{"total":600,"successful":600,"failed":0},"indices":{"log-2017.11.22-19-192.168.2.3-93004":{"fields":{"Rec......
  • 解释器模式(Interpreter Pattern)
    解释器模式(InterpreterPattern)一、定义解释器模式(InterpreterPattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在SQL解析、符号处理引擎等。给定一个语言,定义它的文法的一种表示,并定义......
  • Abstract Factory Pattern 抽象工厂模式简介与 C# 示例【创建型】【设计模式来了】
    〇、简介1、什么是抽象工厂模式?一句话解释:  通过对抽象类和抽象工厂的一组实现,独立出一系列新的操作,客户端无需了解其逻辑直接访问。抽象工厂模式(AbstractFactoryPattern)是一种创建型模式。它用于创建一组相关对象的家族。强调的是一组对象之间的协作关系,而不是单个对象之......
  • ubuntu22 kvm bridge
    KVM是基于内核的虚拟机(Kernel-basedVirtualMachine)的首字母缩写,这是一项集成在内核中的开源虚拟化技术。它是一种类型一(裸机)的管理程序(hypervisor),可以使内核能够作为一个裸机管理程序(bare-metalhypervisor)。在KVM之上可以运行Windows和Liunx虚拟机。每个虚拟机......
  • cpp: State Pattern
     /*****************************************************************//***\fileGold.h*\briefStatePattern状态模式C++14*2023年5月29日涂聚文GeovinDuVisualStudio2022edit.*\authorgeovindu*\dateMay2023************************......