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

做网站用什么cms 知乎seo工作室

做网站用什么cms 知乎,seo工作室,家居网站建设全网营销,阿里云的网站建设花钱么类型:结构型模式 实现原理:装饰器模式通过将对象包装在装饰器类中,并在保持类方法签名完整性的前提下,提供额外功能 作用:动态地给一个对象添加一些额外的职责。增加功能方面,装饰器模式比生成子类更灵活…

类型:结构型模式

实现原理:装饰器模式通过将对象包装在装饰器类中,并在保持类方法签名完整性的前提下,提供额外功能

作用:动态地给一个对象添加一些额外的职责。增加功能方面,装饰器模式比生成子类更灵活。

解决的问题:为了扩展类,使用继承方式引入静态特征,而随着扩展功能的增多,子类发生膨胀。

何时使用:在不想增加很多子类的情况下扩展类。

解决方法:划分具体功能职责,并继承装饰者模式。

关键代码:1、Component 类充当抽象角色,不应该具体实现。 2、修饰类引用和继承 Component 类,具体扩展类重写父类方法。

应用实例:1、孙悟空有 72 变,当他变成"庙宇"后,他的根本还是一只猴子,但是他又有了庙宇的功能。 2、不论一幅画有没有画框都可以挂在墙上,但是通常都是有画框的,并且实际上是画框被挂在墙上。在挂在墙上之前,画可以被蒙上玻璃,装到框子里;这时画、玻璃和画框形成了一个物体。

优点:装饰类和被装饰类各自独立

缺点:多层装饰比较复杂。

使用场景: 1、扩展一个类的功能。 2、动态增加功能,动态撤销。

装饰器模式包含以下几个核心角色:

  • 抽象组件(Component):定义了原始对象和装饰器对象的公共接口或抽象类,可以是具体组件类的父类或接口。
  • 具体组件(Concrete Component):是被装饰的原始对象,它定义了需要添加新功能的对象。
  • 抽象装饰器(Decorator):继承自抽象组件,它包含了一个抽象组件对象,并定义了与抽象组件相同的接口,同时可以通过组合方式持有其他装饰器对象。
  • 具体装饰器(Concrete Decorator):实现了抽象装饰器的接口,负责向抽象组件添加新的功能。具体装饰器通常会在调用原始对象的方法之前或之后执行自己的操作。

装饰器模式通过嵌套包装多个装饰器对象,可以实现多层次的功能增强。每个具体装饰器类都可以选择性地增加新的功能,同时保持对象接口的一致性。

实现

步骤 1创建一个接口:Shape.java
public interface Shape {void draw();
}
步骤 2创建实现接口的实体类。Rectangle.java
public class Rectangle implements Shape {@Overridepublic void draw() {System.out.println("Shape: Rectangle");}
}
Circle.java
public class Circle implements Shape {@Overridepublic void draw() {System.out.println("Shape: Circle");}
}
步骤 3创建实现了 Shape 接口的抽象装饰类。ShapeDecorator.java
public abstract class ShapeDecorator implements Shape {protected Shape decoratedShape;public ShapeDecorator(Shape decoratedShape){this.decoratedShape = decoratedShape;}public void draw(){decoratedShape.draw();}
}
步骤 4创建扩展了 ShapeDecorator 类的实体装饰类。RedShapeDecorator.java
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");}
}
步骤 5使用 RedShapeDecorator 来装饰 Shape 对象。DecoratorPatternDemo.java
public class DecoratorPatternDemo {public static void main(String[] args) {Shape circle = new Circle();ShapeDecorator redCircle = new RedShapeDecorator(new Circle());ShapeDecorator redRectangle = new RedShapeDecorator(new Rectangle());//Shape redCircle = new RedShapeDecorator(new Circle());//Shape redRectangle = new RedShapeDecorator(new Rectangle());System.out.println("Circle with normal border");circle.draw();System.out.println("\nCircle of red border");redCircle.draw();System.out.println("\nRectangle of red border");redRectangle.draw();}
}
步骤 6执行程序,输出结果:Circle with normal borderShape: CircleCircle of red borderShape: CircleBorder Color: RedRectangle of red borderShape: RectangleBorder Color: Red这段代码实现了装饰器模式。首先,创建了一个Shape接口,该接口定义了一个绘制(draw)方法。然后,创建了两个实现了Shape接口的具体类RectangleCircle,它们分别实现了绘制方法,用于绘制矩形和圆形。接下来,创建了一个抽象装饰类ShapeDecorator,它也实现了Shape接口,并持有一个Shape类型的成员变量decoratedShape。该类的构造函数接受一个Shape对象作为参数,用于装饰该对象。在绘制方法中,首先调用被装饰对象的绘制方法,然后执行额外的装饰操作。再次,创建了一个扩展了ShapeDecorator的具体装饰类RedShapeDecorator。该类在绘制方法中除了调用被装饰对象的绘制方法外,还添加了一个设置红色边框的操作。最后,在主函数中,创建了一个Circle对象和两个经过装饰的对象redCircle和redRectangle。通过调用各个对象的绘制方法,可以看到装饰器模式的效果。原始的Circle对象只绘制了圆形,而经过装饰的redCircle对象在绘制圆形之后还添加了红色边框的操作。执行程序后,输出了三个对象的绘制结果。可以看到,原始的Circle对象只绘制了圆形,而经过装饰的redCircle对象在绘制圆形之后还添加了红色边框的操作。同样,装饰了Rectangle对象的redRectangle对象也具有红色边框。这展示了装饰器模式的应用,通过动态地添加额外的行为,可以在不修改现有对象的情况下对其进行装饰和扩展。```
http://www.hkea.cn/news/358039/

相关文章:

  • 新建网站推广给企业百度问一问在线咨询客服
  • 曹鹏wordpress建站seo视频广东疫情防控措施
  • 网站开发的岗位排名优化工具
  • 岳阳做网站怎么做推广让别人主动加我
  • 不断改进网站建设公司百度官网优化
  • 万户网站宁波网站制作优化服务
  • 潍坊快速网站排名网站是怎么做出来的
  • 聚美优品的pc网站建设注册网址
  • 陕西省住房与城乡建设厅网站免费b站推广软件
  • 淮南市住房与城乡建设部网站网店买卖有哪些平台
  • 网页qq表情佛山百度快速排名优化
  • 网站建设方案论文1500社会新闻最新消息
  • 网站组建 需求分析市场监督管理局职责
  • 云课堂哪个网站做的好厦门关键词优化seo
  • 中企动力沈阳分公司seo免费诊断电话
  • 网站vps被黑湖人最新排名最新排名
  • 如何夸奖客户网站做的好seo课程心得体会
  • 有哪些做电子商务的网站时空seo助手
  • 临沂百度网站电脑培训机构哪个好
  • 无锡专业做网站的公司怎样把自己的产品放到网上销售
  • 大学网站建设管理办法推广技巧
  • 长春做网站公司seo关键词排名优化软件怎么选
  • 网站开发未按合同约定工期完工seo关键词排名怎么提升
  • 创可贴app海报制作网站百度seo优化方法
  • 龙岗品牌网站建设2024年新闻摘抄
  • 南阳住房和城乡建设厅网站招聘网站排名
  • 如何做网站活动封面建站的公司
  • 温州网站建设培训营销推广方案包括哪些内容
  • 厦门 建网站商业软文案例
  • wordpress读者墙站长之家seo工具包