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

中国建设银行深圳分行网站wordpress怎么解绑域名

中国建设银行深圳分行网站,wordpress怎么解绑域名,做网站的点子,西部数码网站助手教程文章目录 引言装饰器模式简介定义与用途实现方式 使用场景优势与劣势装饰器模式在Spring中的应用画图示例代码地址 引言 在日常生活中#xff0c;我们常常对基本事物添加额外的装饰以增强其功能或美观。例如#xff0c;给手机加一个保护壳来提升其防护能力#xff0c;或者在… 文章目录 引言装饰器模式简介定义与用途实现方式 使用场景优势与劣势装饰器模式在Spring中的应用画图示例代码地址 引言 在日常生活中我们常常对基本事物添加额外的装饰以增强其功能或美观。例如给手机加一个保护壳来提升其防护能力或者在房间里添加装饰品以提升美观。这种增加附加功能的做法在软件开发中也有所体现特别是在装饰器模式中。装饰器模式允许我们在不改变对象自身的基础上为对象添加新的功能。这种模式在软件开发中非常有用特别是当我们希望动态地、透明地为对象增加职责时。 装饰器模式简介 定义与用途 装饰器模式Decorator Pattern是一种结构型设计模式它允许用户在不改变对象自身的基础上向一个对象添加新的功能。在这种模式中我们通过创建一个包装对象也称为装饰器来包裹真实对象。 实现方式 实现装饰器模式通常包括以下几个关键组件 抽象组件Component 定义了一个对象接口可以给这些对象动态地添加职责。具体组件Concrete Component 定义了抽象组件的具体实现即被装饰的对象。抽象装饰器Decorator 持有一个组件Component对象的引用并定义了符合组件接口的接口。具体装饰器Concrete Decorator 实现抽象装饰器的接口并添加额外的功能。 使用场景 装饰器模式非常适合以下场景 当需要扩展一个类的功能时。当需要动态地为对象增加功能且这些功能可以再动态地撤销。当扩展类的功能比创建子类更有弹性时。 例如 图形用户界面组件装饰在图形用户界面中可以用装饰器模式给基本组件如按钮、文本框等动态添加一些附加功能比如边框、阴影、鼠标悬停效果等。 数据流增强在数据流处理中如文件流、网络流等装饰器模式可以用来动态地添加新的功能比如数据加密、压缩、缓冲等。 权限控制在一些应用程序中根据用户的权限级别动态地给对象添加不同的行为例如对基本功能的访问权限控制。 性能监控在性能监控和日志记录中装饰器可以被用来在不更改原有类的基础上为方法或对象添加日志记录和性能监控的功能。 动态添加属性或行为在需要为对象动态添加属性或行为的场景比如在游戏开发中给角色添加不同的技能或状态效果装饰器模式提供了一种灵活的解决方案。 Web 服务中的中间件在Web开发中中间件可以看作是对HTTP请求或响应的装饰器用于处理认证、日志记录、错误处理等。 优势与劣势 优势 增加对象功能 装饰器模式提供了一种灵活的方式来增加对象的功能与继承相比这种方式更具灵活性。 动态扩展 可以在运行时动态地添加或删除功能。 避免类爆炸 减少了子类的数量避免了类数量过多的问题。劣势 增加系统复杂性 添加装饰器可以使系统变得更加复杂特别是当有很多层装饰时。 维护困难 更复杂的代码意味着维护起来更困难。 装饰器模式在Spring中的应用 1. Spring AOP面向切面编程 Spring AOP是装饰器模式的一个经典应用例子。在Spring AOP中切面Aspect可被视为装饰器它们为业务逻辑如服务层的方法提供了附加功能例如事务管理、日志记录、安全性检查等而不修改原有功能的代码。通过代理模式结合装饰器模式Spring AOP在运行时动态地向对象添加额外的行为。2. Spring I/O资源抽象 在Spring的资源抽象如Resource接口和其实现类中装饰器模式被用来增强基础资源对象如文件系统资源、类路径资源等的功能。例如BufferedInputStream是Java I/O的一个装饰器Spring结合使用这些装饰器以提供高效的数据访问。3. Spring MVC的视图技术集成 Spring MVC框架通过使用装饰器模式可以将不同的视图技术如JSP、Freemarker、Thymeleaf无缝集成到同一模型中。控制器返回模型和视图对象而实际的视图可以是任何实现了View接口的对象这些视图对象可以是装饰过的对象提供了额外的渲染逻辑。4. Spring Security的身份验证和授权 Spring Security使用装饰器模式来增强或修改用户的身份验证对象如UserDetails并在安全上下文中添加额外的安全属性。这允许开发者在不改变现有身份验证逻辑的基础上轻松地添加或改变认证信息。5. Spring的事务管理 在Spring的声明式事务管理中装饰器模式被用于动态地添加事务管理逻辑到业务逻辑上。例如通过使用Transactional注解Spring在运行时创建一个代理对象装饰器围绕着原始的bean实例以提供事务管理的功能。6. Spring的数据访问集成 Spring的数据访问集成如JdbcTemplate、HibernateTemplate等也使用装饰器模式来提供额外的数据处理功能比如异常翻译、资源管理等而不改变原有数据访问逻辑。画图示例 步骤 1 创建图形一个接口。 public interface Shape {void draw(); }步骤 2 创建实现相同接口的具体类。 public class Rectangle implements Shape {Overridepublic void draw() {System.out.println(图形矩形);}}public class Circle implements Shape{Overridepublic void draw() {System.out.println(图形圆形);}}步骤 3 创建实现 Shape 接口的抽象装饰器类。 public abstract class ShapeDecorator implements Shape {protected Shape decoratedShape;public ShapeDecorator(Shape decoratedShape){this.decoratedShape decoratedShape;}Overridepublic void draw(){decoratedShape.draw();}}步骤 4 创建扩展 ShapeDecorator 类的具体装饰器类。给画图加上边框红边的功能 public class RedShapeDecorator extends ShapeDecorator{public RedShapeDecorator(Shape decoratedShape) {super(decoratedShape);}Overridepublic void draw() {decoratedShape.draw();setRedBorder(decoratedShape);}private void setRedBorder(Shape decoratedShape){System.out.println(边框颜色红色);}}步骤 5 使用 RedShapeDecorator 来装饰 Shape 对象。 public class DecoratorPatternDemo {public static void main(String[] args) {Shape circle new Circle();Shape redCircle new RedShapeDecorator(new Circle());Shape redRectangle new RedShapeDecorator(new Rectangle());System.out.println(带有普通边框的圆形);circle.draw();System.out.println(\n带有红色边框的圆形);redCircle.draw();System.out.println(\n带有红色边框的矩形);redRectangle.draw();}}在这个具体示例中展示的是如何使用装饰器模式为简单的形状对象如圆形和矩形添加新的功能如设置边框颜色。 代码地址 23种设计模式相关代码后续会逐步提交到github上方便学习欢迎指点 代码地址 https://github.com/RuofeiSun/lf-23Pattern
http://www.yayakq.cn/news/2559/

相关文章:

  • 南充做网站公司哪家好网站配色 原则
  • 网络推广教育机构论述搜索引擎优化的具体措施
  • 宁波网站推广方式怎么样郑州平面设计公司排行榜
  • 北京市保障性住房建设投资中心网站6短视频推广seo隐迅推专业
  • 宜宾网站建设费用做外贸到那个网站
  • 网站用户界面ui设计细节门户网站 移动端
  • 无锡电子商城网站建设做网站要多少的分辨率
  • 公司地址查询网站长尾词挖掘
  • 200做网站网页截屏快捷方式
  • 做网站需要了解什么茂名市城乡和住房建设局网站
  • 温州网站建设小程序电脑自带做网站的软件
  • 龙江建网站四川网站建设 湖南岚鸿
  • 郑州做网站推广哪家好ppt模板免费下载 素材教学
  • 合肥学校网站建设焦作市网站建设哪家好
  • 做宣传语的网站wordpress登录注册小工具
  • wordpress头部加导航北京seo网络推广
  • 怎么知道网站是某个公司做的今天的特大新闻有哪些
  • 建设部网站电话wordpress做推送
  • 代刷网站推广免费网络广告策划
  • 网站建立后怎么做推广wordpress 新用户邮件
  • 想更新公司网站怎么做制作网站流程图
  • 百度医院网站建设网站内容的设计与实现
  • 做电商什么素材网站好有客多小程序
  • 做网站和推广需要多少钱电子商务网站建设课程性质
  • 网站建设及管理使用情况汇报忻州做网站
  • 深圳网站建设怎么做网站开发答辩会问哪些问题
  • phpcms网站源码做暧暧视频免费视频中国网站
  • 物流的网站模板linux系统用wordpress
  • 贵州网站中企动力建设中国建设银行的网站首页
  • aspnet通讯录网站开发长春专用网站建设