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

网站建设合同服务事项旅游 网站开发的项目描述

网站建设合同服务事项,旅游 网站开发的项目描述,wordpress 静态页面显示文章,坪地做网站目录 侨接设计模式最佳实践 侨接设计模式最佳实践 桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。…

目录

    • 侨接设计模式最佳实践

侨接设计模式最佳实践

桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。在Spring框架中,桥接模式通常用于处理复杂的类层次结构,其中不同的实现可以动态地组合在一起。

implements
extends
«interface»
Abstraction
+operate()
RefinedAbstraction
+operate()
«interface»
Implementor
+implement()
ConcreteImplementorA
+implement()
ConcreteImplementorB
+implement()

应用demo
1. 定义实现化角色(Implementor)

桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。在Spring框架中,桥接模式通常用于处理复杂的类层次结构,其中不同的实现可以动态地组合在一起。

这是实现化角色的接口,定义了一些基本操作。

public interface Implementor {void operationImpl();
}

2. 定义具体实现化角色(ConcreteImplementor)

这是实现化角色的具体实现。

public class ConcreteImplementorA implements Implementor {@Overridepublic void operationImpl() {System.out.println("ConcreteImplementorA operation implemented.");}
}public class ConcreteImplementorB implements Implementor {@Overridepublic void operationImpl() {System.out.println("ConcreteImplementorB operation implemented.");}
}
  1. 定义抽象化角色(Abstraction)

这是抽象化角色的抽象类,它持有一个对实现化角色的引用。

public abstract class Abstraction {protected Implementor implementor;public Abstraction(Implementor implementor) {this.implementor = implementor;}public abstract void operation();
}

4. 定义具体抽象化角色(RefinedAbstraction)

这是抽象化角色的具体实现,它调用实现化角色中的操作。

public class RefinedAbstraction extends Abstraction {public RefinedAbstraction(Implementor implementor) {super(implementor);}@Overridepublic void operation() {System.out.println("Operation of RefinedAbstraction.");implementor.operationImpl();}
}

5. 客户端代码(Client)

这是使用桥接模式的客户端代码。

public class Client {public static void main(String[] args) {Implementor implementorA = new ConcreteImplementorA();Abstraction abstractionA = new RefinedAbstraction(implementorA);abstractionA.operation(); // 输出: Operation of RefinedAbstraction. + ConcreteImplementorA operation implemented.Implementor implementorB = new ConcreteImplementorB();Abstraction abstractionB = new RefinedAbstraction(implementorB);abstractionB.operation(); // 输出: Operation of RefinedAbstraction. + ConcreteImplementorB operation implemented.}
}

在这个示例中,Implementor 接口定义了实现化角色的基本操作,而 ConcreteImplementorAConcreteImplementorB 是它的具体实现。Abstraction 抽象类定义了抽象化角色,它持有一个 Implementor 类型的引用,并通过构造器注入。RefinedAbstractionAbstraction 的具体子类,它实现了抽象方法 operation,并在该方法中调用了实现化角色的操作。最后,在客户端代码中,我们创建了具体的实现化角色和抽象化角色,并通过调用抽象化角色的 operation 方法来演示桥接模式的工作原理。

以下是一个使用桥接模式和Spring框架的示例:

首先,我们定义一个抽象的消息服务接口和它的实现:

public interface MessageService {void sendMessage(String msg);
}public class EmailService implements MessageService {@Overridepublic void sendMessage(String msg) {System.out.println("发送电子邮件:" + msg);}
}public class SMSService implements MessageService {@Overridepublic void sendMessage(String msg) {System.out.println("发送短信:" + msg);}
}

然后,我们定义一个抽象的消息客户端类,它包含一个对MessageService的引用:

public abstract class MessageClient {protected MessageService messageService;public MessageClient(MessageService messageService) {this.messageService = messageService;}public abstract void sendMessage(String msg);
}public class EmailClient extends MessageClient {public EmailClient(MessageService messageService) {super(messageService);}@Overridepublic void sendMessage(String msg) {messageService.sendMessage(msg);}
}public class SMSClient extends MessageClient {public SMSClient(MessageService messageService) {super(messageService);}@Overridepublic void sendMessage(String msg) {messageService.sendMessage(msg);}
}

现在,我们可以在Spring的配置类中注册这些bean:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class AppConfig {@Beanpublic MessageService emailService() {return new EmailService();}@Beanpublic MessageService smsService() {return new SMSService();}@Beanpublic MessageClient emailClient(MessageService emailService) {return new EmailClient(emailService);}@Beanpublic MessageClient smsClient(MessageService smsService) {return new SMSClient(smsService);}
}

最后,我们可以在Spring的上下文中使用这些bean:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class ClientApplication {private final MessageClient emailClient;private final MessageClient smsClient;@Autowiredpublic ClientApplication(MessageClient emailClient, MessageClient smsClient) {this.emailClient = emailClient;this.smsClient = smsClient;}public void sendMessages() {emailClient.sendMessage("这是一封电子邮件");smsClient.sendMessage("这是一条短信");}
}
http://www.yayakq.cn/news/312747/

相关文章:

  • 做网站怎么电话约客户网站域名费会计分录怎么做
  • 网站建设怎么汇报利用模板如何制作网站
  • 百度小程序可以根据网站的要求做吗济宁网站建设是什么
  • 建设二手网站的建设费用包括在线网站推荐几个
  • 怎样用flash做网站山东济南网站建设优化
  • 杭州临平网站建设功能网站开发
  • 哈尔滨创意网站建设自己建网站怎么弄
  • 长沙自助模板建站做外贸的网站有何用处
  • 网站优化关键词排名怎么做室内设计效果图全景图
  • 网上的网站模板怎么用有哪些做场景秀的网站
  • 企业网站排名软件能优化郑州发布评论
  • 光谷做网站推广多少钱哈尔滨建设银行招聘信息网
  • 安康网站开发西安蓝海网站建设
  • 房屋 哪个网站做的最好网站开发包括网站设计
  • 源码站哪些网站可以做邀请函
  • 雅安市网站建设腾讯企点是什么
  • 风铃做的网站能否推广外贸网站建设哪家有名
  • 电商网站开发周期网站建站建设哪家好
  • 网站建设怎么添加评论WordPress点击看大图
  • 重庆公章备案查询网站邯郸哪家公司做企业网站比较专业
  • 各大网站开发的区块链网络app推广公司
  • 深圳网站开发公司宝网网站建设个人工作总结
  • 东莞市研发网站建设品牌服装设计80%的人会转行
  • 电商网站建设阿里云东莞seoseo关键词排名优化
  • 网站建设方案书 本案网站设计范例
  • 中山建设网站公司一个公司网站多少钱
  • wordpress企业网站制作视频教程外贸公司网站建设费用 如何申请
  • 宁波市国家高新区建设局网站昆明网站建设搜q479185700
  • 珠海网站建设防广告公司策划
  • 药店网站建设相关费用手机网站源代码