当前位置: 首页 > news >正文

做化妆品销售网站如何手机网站在线生成

做化妆品销售网站如何,手机网站在线生成,获客渠道有哪些,卖东西的网站怎么建设设计模式(结构型设计模式——桥接模式) 桥接模式 基本定义 桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。 降低了类与类之间的耦合度:脱耦就是将…

设计模式(结构型设计模式——桥接模式)

桥接模式

基本定义

桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。
降低了类与类之间的耦合度:脱耦就是将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联,将两个角色之间的继承关系改为关联关系。

模式结构

Abstraction:抽象类(最终需要的对象的类)。

RefinedAbstraction:扩充抽象类(产品/对象)。

Implementor:实现类接口(服务于我们的抽象类,作为抽象类的一个属性或者是维度)。

ConcreteImplementor:具体实现类 。

代码实现

Implementor:实现类接口

实现类接口,用于服务于抽象类(Car), 为抽象类提供必要的属性或维度

public interface Color {void addColor(String carType);
}
ConcreteImplementor: 具体实现类
@Slf4j
public class Black implements Color{public void addColor(String carType) {log.info("汽车类型:{}, 喷漆颜色:黑色", carType);}
}
@Slf4j
public class White implements Color {public void addColor(String carType) {log.info("汽车类型:{}, 喷漆颜色:白色", carType);}
}
Abstraction: 抽象类

桥接模式最终目的就是为了建立一个抽象类的对象

public abstract class Car {/*** 关联关系,抽象类使用接口实现类通过关联关系进行的,这也是桥接模式的一个重要的特点* 关联关系的重要性:*      1.关联关系是弱关联(降低耦合度),例如需要增加汽车颜色,只需实现color接口即可,不影响现有代码*      2.使用color属性时, 没有通过继承或者实现方式,这是桥接模式特点之一*      相比于适配器模式,关联关系的桥接模式更容易达到抽象对象结构建立的目的,而适配器模式通过继承和实现的方式,达到接口兼容的目的*/public Color color;public void setColor(Color color) {this.color = color;}public abstract void makeCar(String carType);}
RefinedAbstraction: 扩充抽象类

扩充抽象类,遵从面向接口编程

public class CarImpl extends Car {public void makeCar(String carType) {color.addColor(carType);}
}
测试类
public class Test {public static void main(String[] args){Car car = new CarImpl();Color color = new Black();car.setColor(color);car.makeCar("AUDI");//print: 汽车类型:AUDI, 喷漆颜色:黑色}
}

优点

  1. 分离抽象接口及其实现部分。提高了比继承更好的解决方案。

  2. 桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。

  3. 实现细节对客户透明,可以对用户隐藏实现细节。

缺点

  1. 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。

  2. 桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围有一定的局限性。

使用场景

  1. 如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。
  2. 对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适用。
  3. 一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。

总结

  1. 桥接模式实现了抽象化与实现化的脱耦。他们两个互相独立,不会影响到对方。

  2. 对于两个独立变化的维度,使用桥接模式再适合不过了。

  3. “具体的抽象类”(我们将抽象类的属性交给具体的实现类去处理)所做的改变,是不会影响到客户的。

http://www.yayakq.cn/news/297217/

相关文章:

  • 网站功能策划wordpress在页面里写文章
  • 韶关网站建设公司wordpress 分类目录前缀
  • 网站平台做捐助功能有风险吗深圳市建筑工程股份有限公司招聘
  • 做内容的网站网站分离怎么做
  • 如何做淘宝网站特色专业建设展示网站
  • 旅游网站建设研究综述设计相关网站
  • 基于phpmysql的网站开发建设银行官网首页登录入口
  • 南昌免费网站建站模板深圳市宝安区松岗街道
  • 网站开发速成培训机构网站建设是什么语言
  • wordpress加载很慢上海seo优化公司 kinglink
  • 中式建筑公司网站江苏亿之盛建设有限公司网站
  • 景德镇网站制作公司网站专业制作
  • 购买域名后如何建立网站产品推广有哪些平台
  • 建筑网站设计网站qq启动链接怎么做
  • 做门窗的建网站怎么赚钱投资公司注册资金要求
  • 网站建设服务中企动力网站开发项目有哪些
  • 成都网站网站建设ppt课件
  • 网站找哪家做发烧病例单子图片在线制作
  • 网站栏目规划wap网站怎么做
  • 网站建设中企中国石化工程建设有限公司邮政编码
  • 百度站长之家工具seo网站建设
  • dede网站更新如何同步腾讯微博更新网络运营商哪家好
  • 中国建设银行陕西分行官方网站苏州建设网站
  • 个人网站有哪些举例重庆网站推广优化软件业务
  • 电商公司的网上设计东营做网站优化
  • 正规制作网站公司哪家好网站美工用什么软件
  • 网站搭建报价单优秀的国内企业网站
  • 哈尔滨网站建设培训谷歌是如何运营的
  • 昆明网站公司建设辽阳做网站的公司
  • 全自动站群系统随便来一个公司邮箱