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

医院网站怎么做那个外贸网站做的最好

医院网站怎么做,那个外贸网站做的最好,百度普通下载,wordpress 转换app装饰模式就是对一个类进行装饰#xff0c;增强其方法行为#xff0c;在装饰模式中#xff0c;作为原来的这个类使用者还不应该感受到装饰前与装饰后有什么不同#xff0c;否则就破坏了原有类的结构了#xff0c;所以装饰器模式要做到对被装饰类的使用者透明#xff0c;这…装饰模式就是对一个类进行装饰增强其方法行为在装饰模式中作为原来的这个类使用者还不应该感受到装饰前与装饰后有什么不同否则就破坏了原有类的结构了所以装饰器模式要做到对被装饰类的使用者透明这是对装饰器模式的一个要求。总之装饰器设计模式就是对于原有功能的扩展 不改变原有代码基础之上 额外实现增强。装饰者模式是一种结构型设计模式它允许你在运行时为对象动态添加新的行为同时不改变其原有的结构。这种模式是作为替代继承的一种方式而存在的。 在装饰者模式中有一个抽象组件Component定义了基本功能并且可以有一个或多个具体组件ConcreteComponent实现这些基本功能。此外还有一个抽象装饰者Decorator类它也实现了抽象组件并且包含了一个指向抽象组件的引用。具体装饰者ConcreteDecorator类继承自抽象装饰者类并且可以在运行时为抽象组件添加新的行为。 装饰者模式Decorator Pattern是一种结构型设计模式它允许你动态地给对象添加职责功能。装饰者模式与继承不同它通过创建装饰者类来包装原始类而不是通过继承来扩展功能。装饰者模式在许多情况下非常有用特别是在需要组合功能或动态地调整功能的时候。 优点 灵活性通过组合不同的装饰器可以灵活地为对象添加不同的功能。遵循开闭原则不修改现有类的情况下扩展功能。细粒度控制可以对对象功能进行细粒度控制和组合。 缺点复杂性会增加系统的复杂性尤其是在有大量不同装饰器的时候。性能可能会增加系统的性能开销特别是在装饰器链比较长的情况下。 装饰者模式非常适合那些需要在不修改类定义的情况下动态地添加功能的场景。 装饰者模式的组成 装饰者模式主要包括以下几个部分 组件接口Component定义对象的接口可以是具体组件或装饰器共同实现的接口。 具体组件ConcreteComponent实现组件接口的基本功能对象。 装饰器抽象类Decorator实现组件接口并包含一个组件接口的引用可以是具体组件或另一个装饰器。 具体装饰器ConcreteDecorator继承装饰器抽象类添加额外的功能。 UML 类图 Component (接口) ^ | ConcreteComponent (具体组件) ^ | Decorator (装饰器抽象类) ^ | ConcreteDecoratorA, ConcreteDecoratorB (具体装饰器)装饰者模式Decorator Pattern是一种结构型设计模式它允许你动态地给对象添加职责功能。装饰者模式与继承不同它通过创建装饰者类来包装原始类而不是通过继承来扩展功能。装饰者模式在许多情况下非常有用特别是在需要组合功能或动态地调整功能的时候。 UML 类图 Component (接口) ^ | ConcreteComponent (具体组件) ^ | Decorator (装饰器抽象类) ^ | ConcreteDecoratorA, ConcreteDecoratorB (具体装饰器) java样例1 以下是一个简单的 Java 示例展示了如何使用装饰者模式 // 组件接口 public interface Coffee {String getDescription();double getCost(); }// 具体组件 public class SimpleCoffee implements Coffee {Overridepublic String getDescription() {return Simple coffee;}Overridepublic double getCost() {return 2.0;} }// 装饰器抽象类 public abstract class CoffeeDecorator implements Coffee {protected Coffee decoratedCoffee;public CoffeeDecorator(Coffee coffee) {this.decoratedCoffee coffee;}Overridepublic String getDescription() {return decoratedCoffee.getDescription();}Overridepublic double getCost() {return decoratedCoffee.getCost();} }// 具体装饰器A public class MilkDecorator extends CoffeeDecorator {public MilkDecorator(Coffee coffee) {super(coffee);}Overridepublic String getDescription() {return decoratedCoffee.getDescription() , Milk;}Overridepublic double getCost() {return decoratedCoffee.getCost() 0.5;} }// 具体装饰器B public class SugarDecorator extends CoffeeDecorator {public SugarDecorator(Coffee coffee) {super(coffee);}Overridepublic String getDescription() {return decoratedCoffee.getDescription() , Sugar;}Overridepublic double getCost() {return decoratedCoffee.getCost() 0.2;} }// 使用装饰者模式 public class DecoratorPatternDemo {public static void main(String[] args) {Coffee coffee new SimpleCoffee();System.out.println(coffee.getDescription() $ coffee.getCost());coffee new MilkDecorator(coffee);System.out.println(coffee.getDescription() $ coffee.getCost());coffee new SugarDecorator(coffee);System.out.println(coffee.getDescription() $ coffee.getCost());} }运行结果 Simple coffee $2.0 Simple coffee, Milk $2.5 Simple coffee, Milk, Sugar $2.7 解释 组件接口Coffee定义了 getDescription 和 getCost 方法。具体组件SimpleCoffee实现了组件接口表示基本的咖啡。装饰器抽象类CoffeeDecorator实现了组件接口并持有一个组件接口的引用。具体装饰器MilkDecorator 和 SugarDecorator扩展了装饰器抽象类为咖啡添加额外的功能牛奶和糖。 Java样例2 下面是一个简单的装饰者模式的示例假设我们有一个接口 Shape 表示图形以及一个具体实现 Circle public interface Shape {void draw(); }public class Circle implements Shape {Overridepublic void draw() {System.out.println(Drawing Circle);} } 然后我们创建一个抽象装饰者 ShapeDecorator它也实现了 Shape 接口并且包含了一个指向 Shape 的引用 public abstract class ShapeDecorator implements Shape {protected Shape decoratedShape;public ShapeDecorator(Shape decoratedShape) {this.decoratedShape decoratedShape;}public void draw() {decoratedShape.draw();} } 接着我们可以创建具体的装饰者例如 RedShapeDecorator它继承自 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(Border Color: Red);} } 最后我们可以使用装饰者模式来动态地为对象添加新的行为例如 public class DecoratorPatternDemo {public static void main(String[] args) {Shape circle new Circle();Shape redCircle new RedShapeDecorator(new Circle());System.out.println(Circle with normal border);circle.draw();System.out.println(\nCircle of red border);redCircle.draw();} }在这个示例中RedShapeDecorator 动态地为 Circle 对象添加了红色边框的功能而不需要改变 Circle 类的代码。 装饰者模式的优点在于它能够灵活地扩展对象的功能而不需要修改现有的代码同时遵循了开放-封闭原则。但是过度使用装饰者模式可能会导致系统中出现大量的小类增加复杂性。因此在使用装饰者模式时需要权衡利弊。
http://www.dnsts.com.cn/news/85224.html

相关文章:

  • 简历制作网站哪个好如何做网站广告图片
  • 建设网站的群wordpress pwshell
  • 上海金融网站制作网站制作公司好西安网站建设招标
  • 北京网站优化推广分析零基础做地方门户网站
  • 外贸网站推广方式dw建设网站的代码模板
  • 公司网站设计与实现的项目建议书网站建设员工分工
  • 国外搜索引擎网站辽宁建设工程信息网新平台
  • 广州网站网站建设页面设计尺寸
  • 企业网站建设经验分享忒低网站长怎么做
  • 川畅科技搜搜 网站设计那个视频网站好
  • 广州seo网站多少钱百度软件下载安装
  • 自动化系统网站建设首选公司做设计用的素材下载网站
  • 制作查询网站有没有建筑学做区位分析的网站
  • 网站改域名如何做百度优化最强大的wordpress
  • 做网站被捉定西市建设局网站
  • 福安市网站建设寻找哈尔滨网站建设
  • 山东省住房和城乡建设厅注册中心网站网页开发的基本流程是什么
  • 家装公司建设网站淄博网站建设公司三农
  • ireal 网站建设seo引擎优化是什
  • 兰州专业网站建设报价小程序怎么进入公众号
  • 长春网络营销网站网站设计规划报告
  • 宣讲网站建设网站 被黑
  • 鹤山做网站公司中国国音电商平台官网
  • 杭州智能模板建站河南做网站公司排名
  • 网站虚拟主机有什么用网页设计基础实训计划
  • 外贸营销型网站建设多少钱微信公众号登录平台官网
  • 网站关停怎么做河南网站推广优化公司哪家好
  • 超值高端网站设计wordpress建站 产品详情页
  • 哪里有网站制作建设wordpress美化底部
  • 网站备案太麻烦自己做公司网站成本