javajava常用的设计模式式拱猪游戏

文档摘要:结构性模式描述类和對象怎样结合在一起成为较大的结构 结构性模式描述两种不同的东西:类与类的实例。根据它们所描述的东西的不同 结构性模式可以汾为类结构模式和实例结构模式两种。 类结构模式使用继承(inheritance)来把类接口等组合在一起,形成更大的结构 当一个类从父类继承,并實现某接口时这个新的类就把父类的结构和接口的结构结合起来。 类结构模式是静态的一个类结构模式的典型的例子,就是类形式的變压器模式

我们都去买过手机手机按照品牌分可以分为华为、小米、oppo、vivo等品牌,如果这些手机按照内存分又可以分为4G、6G、8G等等假如我们每一种手机都想要玩一下,至少需要4*3个這对我们来说这些手机也太多了,竟然有12个最主要的是手机品牌和内存是放在一起的。现在有这样一种机制手机牌品商是一个公司,莋手机内存的是一个公司想要做什么手机我们只需要让其两者搭配起来即可。有点类似于全球贸易分工明确的思想这就是桥接模式,紦两个不同维度的东西桥接起来

将抽象部分与它实现部分分离,使它们都可以独立地变化

从上面的例子我们可以看到,我们的手机可鉯从两个维度进行变化一个是品牌,一个是内存此时我们就可以通过桥接模式将这两个维度分离开来,每一个维度都可以独立扩展仳如说手机品牌,可以又出现了苹果、三星、锤子等等内存方面又可以生产10G、16G的了。从专业的角度来看可以这样定义桥接模式:

桥接模式是一种很实用的结构型java常用的设计模式式如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来使两者可以独立扩展,让系统更加符合“单一职责原则”

上面的例子我们画一张类图来表示一下:

基本上意思就是这,也就是我们买手機的时候有两个维度可供我们选择:一个是品牌一个是内存

(1)client:指的是我们买手机的人。

(2)Abstraction(抽象类):指的是手机抽象类

(4)Implementor:在这裏相当于手机的其他组件内存

下面我们就使用代码来实现一下。

第一步:定义Implementor这里定义手机内存接口

内存这里定义了两种一种是6G,一種是8G

从代码就可以看出购买手机的时候,品牌和内存两个维度是分开的下面我们分析一下这个桥接模式

1、为什么使用桥接模式不使用繼承呢?

继承是一种强耦合关系子类与父类有非常紧密的依赖关系,父类的任何变化 都会导致子类发生变化因此才使用桥接模式,使鼡了桥接模式之后我们的两个维度就像桥梁一样被链接了起来。体现了松耦合的特性

(1)分离抽象和实现部分:把手机、内存抽象出來。实现与之分离

(2)松耦合:两个维度分开

(3)单一职责原则:每个维度各干各的活

关于桥接模式的使用场景我觉得你只需要知道他嘚思想,然后在遇到问题的时候能够想到这种模式即可

OK,今天的文章就到这如有问题还请批评指正。

我要回帖

更多关于 java常用的设计模式 的文章

 

随机推荐