linkin大话设计模式--桥接模式



桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿。我们为了不一直忙于定义子类,就可以使用桥接模式。桥接模式就是把变化部分抽象出来,使变化部分与主类部分分离开来,从而将多个维度的变化彻底分离。最后提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要。


代码如下:

<span style="font-size:14px;">//这里继承一个抽象类   其中的维度就是不同的面条
public class PorxyNoodle1 extends AbstractNoode{ public PorxyNoodle1(Peppery style) {
super(style);
} @Override
public void eat() {
System.out.println("这里是第1种面条..."+super.style.style());
} public static void main(String[] args) {
AbstractNoode noodel1 = new PorxyNoodle1(new PepperyStyle1());
noodel1.eat();
AbstractNoode noodel2 = new PorxyNoodle1(new PepperyStyle2());
noodel2.eat();
AbstractNoode noodel3 = new PorxyNoodle2(new PepperyStyle1());
noodel3.eat();
AbstractNoode noodel4 = new PorxyNoodle2(new PepperyStyle2());
noodel4.eat();
}
} // 继承了实现了一个维度上面的变化的一个抽象类 这样子具体的另外一个维度上面的实现就是这里不同的类名里面不同的逻辑
class PorxyNoodle2 extends AbstractNoode{ public PorxyNoodle2(Peppery style) {
super(style);
} @Override
public void eat() {
System.out.println("这里是第2种面条..."+super.style.style());
} } //其中的一个维度上的接口(辣椒味道) 只要是这个维度里面有变化 直接修改或者添加具体的实现类就可以
interface Peppery{
public String style();
} class PepperyStyle1 implements Peppery{ @Override
public String style() {
return "这里是辣椒风格1...";
} } class PepperyStyle2 implements Peppery{ @Override
public String style() {
return "这里是辣椒风格2...";
} } abstract class AbstractNoode{
//这里的这个抽象类里面这个属性其实就是一个维度 一会在new对象的时候这个属性会作为一个参数传入构造器 除了new时根据不同的类型外又实现了一个维度上的独立
public Peppery style; public AbstractNoode(Peppery style) {
this.style = style;
} public abstract void eat(); }
</span>


































































linkin大话设计模式--桥接模式的更多相关文章

  1. linkin大话设计模式--常用模式总结

    linkin大话设计模式--常用模式总结 一,常用设计模式定义 Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. Adapter( ...

  2. linkin大话设计模式--建造模式

    linkin大话设计模式--建造模式 建造模式是对象的创建模式,可以讲一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象. 建造模式的结构: 抽象建造者 ...

  3. linkin大话设计模式--模板方法模式

    linkin大话设计模式--模板方法模式 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不 ...

  4. linkin大话设计模式--门面模式

    linkin大话设计模式--门面模式 随着系统的不断改进和开发,他们会变得越来越复杂,系统会生成大量的类,这使得程序的流程更加难以理解.门面模式可以为这些类提供一个简易的接口,从而简化访问这些类的复杂 ...

  5. linkin大话设计模式--策略模式

    linkin大话设计模式--策略模式 Strategy [ˈstrætədʒi]  策略 策略模式用于封装系列的算法,这些算法通常被封装在一个称为Context的类中,客户端程序可以自由的选择任何一种 ...

  6. linkin大话设计模式--命令模式

    linkin大话设计模式--命令模式 首先考虑一种应用情况,某个方法需要完成某一个功能,这个功能的大部分功能已经确定了,但是有可能少量的步骤没法确定,必须等到执行这个方法才可以确定. 也就是说,我们写 ...

  7. 大话设计模式--桥接模式 Bridge -- C++实现实例

    1. 桥接模式: 将抽象部分与它的实现部分分离,使它们都可以独立的变化. 分离是指 抽象类和它的派生类用来实现自己的对象分离. 实现系统可以有多角度分类,每一种分类都有可能变化,那么把这种多角度分离出 ...

  8. linkin大话设计模式--代理模式

    代理模式是一种应用非常广泛的设计模式,当客户端代码需要调用某个对象的时候,客户端并不关心是否可以准确的得到这个对象,他只要一个能够提供该功能的对象而已,此时我们就可以返回该对象的代理.总而言之,客户端 ...

  9. linkin大话设计模式--单例模式

    linkin大话设计模式 开文前先弱弱的问一句:什么是设计模式?我在研究java2ee的时候有研究过,在学js的时候也有看到.设计模式的概念最早源于建筑设计大师<建筑的永恒算法>一书,它表 ...

随机推荐

  1. Spring框架入门之基于xml文件配置bean详解

    关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一.Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入 构造方法注入 工厂方法注入(很少使用,不推荐,本 ...

  2. js 循环 常用方法

    $(function () { var num = ["1","2","3","4","5",&qu ...

  3. CSS基础知识(颜色、伪类、盒子模型)

    6.设置颜色单位 L    普通英文单词 {color : 属性值red;} 此方法简单,便捷.但设置的颜色在不同浏览器中,可能显示的颜色出现差异 * 三原色 - 红.绿.蓝 L   颜色的八进制方式 ...

  4. 大数据Hadoop学习之搭建Hadoop平台(2.1)

     关于大数据,一看就懂,一懂就懵. 一.简介 Hadoop的平台搭建,设置为三种搭建方式,第一种是"单节点安装",这种安装方式最为简单,但是并没有展示出Hadoop的技术优势,适合 ...

  5. Java Web应用集成OSGI

    对OSGI的简单理解 就像Java Web应用程序需要运行在Tomcat.Weblogic这样的容器中一样.程序员开发的OSGI程序包也需要运行在OSGI容器中.目前主流的OSGI容器包括:Apach ...

  6. HUST 1585 排队

    1585 - 排队 时间限制:1秒 内存限制:128兆 351 次提交 179 次通过 题目描述 BG站在一个有n个人的队伍中,但他并不知道他处于队伍中的哪个位置,他向前向后观察,只能断定他的前方有至 ...

  7. Cnm%(个人模版)

    Cnm%: #include<stdio.h> #include<string.h> #include<vector> using namespace std; # ...

  8. Gym 100952C&&2015 HIAST Collegiate Programming Contest C. Palindrome Again !!【字符串,模拟】

    C. Palindrome Again !! time limit per test:1 second memory limit per test:64 megabytes input:standar ...

  9. POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 53703   Accepted: 25237 ...

  10. BZOJ1226: [SDOI2009]学校食堂Dining

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1226 状压dp. f[i][s][k]表示原顺序中前i-1个人都吃了饭,当前状态为s(i及i之 ...