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

医院网站怎么做html网站怎么做几个网页

医院网站怎么做,html网站怎么做几个网页,网站开发企业开发,怎么建设网站容易被百度抓取装饰模式就是对一个类进行装饰#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.hkea.cn/news/14550846/

相关文章:

  • 汽车企业网站开发方案河南郑州天气预报15天
  • 单位网站建设典型材料wordpress充值提现
  • 网站建设商城扬州工程建设信息网站
  • 惠州行业网站设计方案百度seo推广首选帝搜软件
  • 做站长工具网站免费的app软件下载安装
  • 通辽做网站有没有做网站放到百度上需要什么
  • 做网站备案不少天wordpress wp head
  • 录音转文字网站开发重庆营销型网站开发
  • 台州网络建站模板管理系统是网站吗
  • 网站开发包括几个部分南京公司建设网站
  • 寿光网站建设推广互联网现在的发展趋势
  • 深圳住房和建设局网站全景看房福田网站 建设seo信科
  • 企业网站搜索优化外包手机网页禁止访问怎么解决
  • 苏州住房和城乡建设局网站制作网页一般用什么来设计分割页面
  • 厦门首屈一指的网站建设公司wordpress主题演示数据库
  • 网站被墙的原因超级装家装官网
  • 常州建网站网站开发服务费算无形资产吗
  • 网站建设的用户体验建设网站以什么为导向
  • 阿里巴巴做国际网站多少钱手表网站 欧米茄
  • 网站主题定位临海做网站
  • 部队网站源码广州微网站建设
  • google移动网站建站十大原则两台wordpress共享mysql
  • 中国建设工程招标网站化妆培训网站模板
  • 招生平台网站开发vs能建设网站吗
  • 怎么优化网站的单个关键词排名服装设计官网
  • 网站建设要做什么会计科目南宁网站建公司电话号码
  • 一个人做网站现实吗图标设计免费logo
  • 网站在建设中页面网站搭建培训学校
  • 郑州做网站公司电话优化网站公司外包
  • 企业综合查询网站品牌营销策划服务