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

城乡住房建设厅网站首页设备租赁业务网站如何做

城乡住房建设厅网站首页,设备租赁业务网站如何做,南京江北新区教师招聘,wordpress去除注册结构型模式-桥接模式 7.5桥接模式7.5.1概念7.5.2场景7.5.3优势 / 劣势7.5.4桥接模式可分为7.5.5外观模式7.5.6实战7.5.6.1题目描述7.5.6.2输入描述7.5.6.3输出描述7.5.6.4实战 7.5.7总结桥接模式 7.5桥接模式 7.5.1概念 ​ 桥接模式主要将抽象部分与实现部分分离开来#xf… 结构型模式-桥接模式 7.5桥接模式7.5.1概念7.5.2场景7.5.3优势 / 劣势7.5.4桥接模式可分为7.5.5外观模式7.5.6实战7.5.6.1题目描述7.5.6.2输入描述7.5.6.3输出描述7.5.6.4实战 7.5.7总结桥接模式 7.5桥接模式 7.5.1概念 ​ 桥接模式主要将抽象部分与实现部分分离开来使得它们可以相互独立地变化。抽象部分定义了一个抽象类或接口包含一些基本操作以及包含一个指向实现部分的引用。实现部分也是一个抽象类或接口定义了一些具体的操作。 7.5.2场景 ​ 比如在路上随处可见的汽车汽车和引擎之间可以使用桥接模式。抽象部分可以是一个汽车的抽象类实现部分可以是不同类型的汽车如轿车、SUV等。而引擎可以是抽象部分的扩展类实现部分可以是不同的引擎类型如电动、燃油、混油引擎等。而我们可以创建多个引擎和汽车而每个引擎和汽车之间都是独立的通过桥接模式将不同类型的汽车和引擎进行组合实现灵活的汽车配置。 7.5.3优势 / 劣势 易维护分离抽象和实现部分使得系统更容易扩展和维护可复用性提高系统的可复用性使得在不同的系统中重用抽象 / 实现部分 应用场景有限主要适用于两个独立变化的维度且维度之间都需要进行扩展增加理解难度要求开发者针对抽象层进行编程增加了理解和设计难度 7.5.4桥接模式可分为 抽象Abstraction一般是抽象类定义抽象部分的接口维护一个对实现的引用修正抽象RefinedAbstraction对抽象接口进行扩展通常对抽象化的不同维度进行变化或定制实现Implementor定义实现部分的接口提供具体的实现。该接口通常是抽象化接口的实现具体实现ConcreteImplementor实现实现化接口的具体类由这些类负责实现实现化接口定义的具体操作 7.5.5外观模式 package com.technologystatck.designpattern.mode.bridging;public class Bridging {public static void main(String[] args) {//创建具体实现化对象Implementor implementationA new ConcreteImplementationA();Implementor implementationB new ConcreteImplementationB();//使用扩充抽象化对象将实现化对象传递进去Abstraction abstractionA new RefinedAbstraction(implementationA);Abstraction abstractionB new RefinedAbstraction(implementationB);//调用抽象化的操作abstractionA.operation();abstractionB.operation();System.out.println(--------------------------------------------);ATV atv new ATV();BTV btv new BTV();RemoteControl basicRemoteForA new BasicRemoteControl(atv);RemoteControl basicRemoteForB new BasicRemoteControl(btv);basicRemoteForA.turnOn();basicRemoteForA.turnOff();basicRemoteForA.tuneChannel();basicRemoteForB.turnOn();basicRemoteForB.turnOff();basicRemoteForB.tuneChannel();} }//创建实现接口 interface Implementor{void operationImpl(); }//用电视举例电视具有开关和切换频道的功能 interface TV{void on();void off();void tuneChannel(); } //创建具体实现类实际提供服务的对象 class ConcreteImplementationA implements Implementor{Overridepublic void operationImpl() {//具体实现ASystem.out.println(具体实现A);} }class ConcreteImplementationB implements Implementor{Overridepublic void operationImpl() {//具体实现BSystem.out.println(具体实现B);} }//用电视举例创建具体实现类 class ATV implements TV{Overridepublic void on() {System.out.println(A TV is ON);}Overridepublic void off() {System.out.println(A TV is OFF);}Overridepublic void tuneChannel() {System.out.println(Turning A TV channel);} } class BTV implements TV{Overridepublic void on() {System.out.println(B TV is ON);}Overridepublic void off() {System.out.println(B TV is OFF);}Overridepublic void tuneChannel() {System.out.println(Turning B TV channel);} }//创建抽象类包含一个对实现化接口的引用 abstract class Abstraction {protected Implementor implementor;public Abstraction(Implementor implementor) {this.implementor implementor;}public void operation() {this.implementor.operationImpl();} } //用电视举例 abstract class RemoteControl{//持有一个实现化接口的引用protected TV tv;public RemoteControl(TV tv) {this.tvtv;}abstract void turnOn();abstract void turnOff();abstract void tuneChannel(); }//实现抽象类创建RefinedAbstraction类 class RefinedAbstraction extends Abstraction {private Implementor implementor;public RefinedAbstraction(Implementor implementor) {super(implementor);this.implementorimplementor;}Overridepublic void operation() {this.implementor.operationImpl();} }class BasicRemoteControl extends RemoteControl{public BasicRemoteControl(TV tv) {super(tv);}Overridevoid turnOn() {tv.on();}Overridevoid turnOff() {tv.off();}Overridevoid tuneChannel() {tv.tuneChannel();} } 7.5.6实战 7.5.6.1题目描述 小明家有一个万能遥控器能够支持多个品牌的电视。每个电视可以执行开机、关机和切换频道的操作请你使用桥接模式模拟这个操作。 7.5.6.2输入描述 第一行是一个整数 N1 N 100表示后面有 N 行输入。 接下来的 N 行每行包含两个数字。第一个数字表示创建某个品牌的遥控和电视第二个数字表示执行的操作。 其中0 表示创建 Sony 品牌的电视1 表示创建 TCL 品牌的遥控和电视 2 表示开启电视、3表示关闭电视4表示切换频道。 7.5.6.3输出描述 对于每个操作输出相应的执行结果。 7.5.6.4实战 package com.technologystatck.designpattern.mode.bridging;import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int nums scanner.nextInt();scanner.nextLine();for(int i0;inums;i) {String[] input scanner.nextLine().split( );int brand Integer.parseInt(input[0]);int operation Integer.parseInt(input[1]);//根据输入的不同执行对应的操作UniversalRemoteTV universalRemoteTV null;if(brand0) {universalRemoteTV new SonyTV();}else if(brand 1) {universalRemoteTV new TCLTV();}AbstractionTV abstractionTVnull;if(operation2) {abstractionTV new PowerOperation(universalRemoteTV);}else if(operation 3) {abstractionTV new OffOperation(universalRemoteTV);}else if (operation 4) {abstractionTV new ChannelOperation(universalRemoteTV);}abstractionTV.performOperation();}} }//定义实现接口 interface UniversalRemoteTV{//定义远程遥控电视的三个功能void onTV();void offTV();void channelTV(); }//创建两个品牌电视具体实现类 class SonyTV implements UniversalRemoteTV{Overridepublic void onTV() {System.out.println(Sony TV is ON);}Overridepublic void offTV() {System.out.println(Sony TV is OFF);}Overridepublic void channelTV() {System.out.println(Switching Sony TV channel);} }class TCLTV implements UniversalRemoteTV{Overridepublic void onTV() {System.out.println(TCL TV is ON);}Overridepublic void offTV() {System.out.println(TCL TV is OFF);}Overridepublic void channelTV() {System.out.println(Switching TCL TV channel);} }//创建抽象类对一个实现的引用 abstract class AbstractionTV{protected UniversalRemoteTV universalRemoteTV;public AbstractionTV(UniversalRemoteTV universalRemoteTV){this.universalRemoteTV universalRemoteTV;}abstract void performOperation();}//创建扩充抽象化类 //打开电视操作 class PowerOperation extends AbstractionTV {public PowerOperation(UniversalRemoteTV universalRemoteTV) {super(universalRemoteTV);}Overridevoid performOperation() {universalRemoteTV.onTV();} } //关闭电视操作 class OffOperation extends AbstractionTV {public OffOperation(UniversalRemoteTV universalRemoteTV) {super(universalRemoteTV);}Overridevoid performOperation() {universalRemoteTV.offTV();} } //切换频道操作 class ChannelOperation extends AbstractionTV {public ChannelOperation(UniversalRemoteTV universalRemoteTV) {super(universalRemoteTV);}Overridevoid performOperation() {universalRemoteTV.channelTV();} } 7.5.7总结 桥接模式 优点方便将抽象部分和实现部分独立扩展不需要修改另一个部分减少系统的耦合度 总结将系统的功能分为抽象部分和实现部分两个部分独立存在 场景 不希望使用继承或者继承导致类爆炸性增长当一个类具有多个独立变化的维度时
http://www.pierceye.com/news/105744/

相关文章:

  • 浙江省建设网站专题网站建设的请示
  • php网站好吗红旗渠建设集团网站
  • 网站建设如何不被忽悠做营销怎样才能吸引客户
  • 代写文章兼职济南公交优化
  • 商城开发网站建立公司网站步骤
  • 查询域名注册网站泰国做网站
  • 网站图片描述怎么写社区类网站有哪些
  • 网站竞争对手的选定一般参考什么标准的网站的推广方案的内容有哪些
  • 把别人的图片拿来做网站wordpress 覆盖原始图片对比效果
  • 江门市建设工程备案网站乌兰浩特网站开发
  • 个人介绍微电影网站模板免费下载一个网站的建设成本
  • 搬瓦工怎么做网站百度小程序开发教程
  • 织梦网站被攻击小型门户网站建设方案
  • 长沙网站托管公司排名静态网站结构如何更新
  • 网站建设 宜宾湖州网站建设培训教程
  • 网站建设脚本什么叫营销型网站
  • 沧州网站建设专业的公司4000-262-seo优化与品牌官网定制
  • 网页游戏推广网站怎么做如何创建平台类网站
  • 十堰英文网站建设学校教育网站模板
  • 学校网页网站模板免费下载微信的微网站
  • 网站开发的解决方案小型行业网站建设维护成本
  • 浏阳市网站建设百度中心人工电话号码
  • 高端外贸网站制作智慧团建网站没有验证码
  • 做网站需要买服务器么网站建设营销外包公司排名
  • 网站建设中要多使用图片258网站建设
  • 做多语言网站教程开网页慢是什么原因
  • 汽车商城网站模板seo公司网站推广
  • 网站备案查询工信部官网网站建设费用推荐网络专业
  • 网站开发费用是研发费用国内做seo最好公司
  • 什么是网站建设公司企业网站后台管理