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

有没有可以做各种字体的网站男人女人晚上做那事网站

有没有可以做各种字体的网站,男人女人晚上做那事网站,石家庄做网站公司,软件定制合同概述 装饰器模式(Decorator Pattern)是一种结构型设计模式,允许你在不改变对象接口的前提下,动态地给对象添加新功能。这个模式通常用于扩展类的功能。 基本结构 组件接口(Component):定义一…

概述

装饰器模式(Decorator Pattern)是一种结构型设计模式,允许你在不改变对象接口的前提下,动态地给对象添加新功能。这个模式通常用于扩展类的功能。

基本结构

  1. 组件接口(Component):定义一个接口,包含基本的方法。
  2. 具体组件(ConcreteComponent):实现组件接口的类,是被装饰的对象。
  3. 装饰器(Decorator):实现组件接口,并持有一个组件的引用,通常会重写接口中的方法来添加新功能。
  4. 具体装饰器(ConcreteDecorator):继承装饰器类,增加具体的功能。

示例代码

假设我们有一个简单的文本组件,我们希望添加一些装饰,比如加粗和斜体。

// 组件接口
interface Text {String getContent();
}// 具体组件
class SimpleText implements Text {private String content;public SimpleText(String content) {this.content = content;}@Overridepublic String getContent() {return content;}
}// 装饰器
abstract class TextDecorator implements Text {protected Text decoratedText;public TextDecorator(Text decoratedText) {this.decoratedText = decoratedText;}@Overridepublic String getContent() {return decoratedText.getContent();}
}// 具体装饰器:加粗
class BoldDecorator extends TextDecorator {public BoldDecorator(Text decoratedText) {super(decoratedText);}@Overridepublic String getContent() {return "<b>" + decoratedText.getContent() + "</b>";}
}// 具体装饰器:斜体
class ItalicDecorator extends TextDecorator {public ItalicDecorator(Text decoratedText) {super(decoratedText);}@Overridepublic String getContent() {return "<i>" + decoratedText.getContent() + "</i>";}
}// 使用示例
public class Main {public static void main(String[] args) {Text simpleText = new SimpleText("Hello, World!");Text boldText = new BoldDecorator(simpleText);Text italicText = new ItalicDecorator(boldText);System.out.println(italicText.getContent());  // 输出:<i><b>Hello, World!</b></i>}
}

优点

  • 灵活性:可以按需组合装饰,增加或减少功能。
  • 遵循单一职责原则:每个装饰器负责一项功能。

缺点

  • 复杂性:增加了系统的复杂性,使用过多装饰器可能导致代码难以理解。
  • 性能问题:由于多层装饰,可能会引入一些性能开销。

希望这个介绍和示例对你理解装饰器模式有所帮助!如果你有任何问题,欢迎随时问我。

示例2 在线购物系统中的订单处理示例

一个在线购物系统中的订单处理示例。在这个例子中,我们将通过装饰器模式动态添加不同的费用,比如运费和税费。

结构

  1. 订单接口(Order):定义一个接口,表示订单的基本功能。
  2. 具体订单(BasicOrder):实现订单接口的基本订单。
  3. 装饰器(OrderDecorator):实现订单接口,持有一个订单的引用。
  4. 具体装饰器(ShippingDecorator, TaxDecorator):分别添加运费和税费。

示例代码

// 订单接口
interface Order {double getCost();
}// 具体订单
class BasicOrder implements Order {private double cost;public BasicOrder(double cost) {this.cost = cost;}@Overridepublic double getCost() {return cost;}
}// 装饰器
abstract class OrderDecorator implements Order {protected Order decoratedOrder;public OrderDecorator(Order decoratedOrder) {this.decoratedOrder = decoratedOrder;}@Overridepublic double getCost() {return decoratedOrder.getCost();}
}// 具体装饰器:运费
class ShippingDecorator extends OrderDecorator {private double shippingCost;public ShippingDecorator(Order decoratedOrder, double shippingCost) {super(decoratedOrder);this.shippingCost = shippingCost;}@Overridepublic double getCost() {return decoratedOrder.getCost() + shippingCost;}
}// 具体装饰器:税费
class TaxDecorator extends OrderDecorator {private double taxRate;public TaxDecorator(Order decoratedOrder, double taxRate) {super(decoratedOrder);this.taxRate = taxRate;}@Overridepublic double getCost() {return decoratedOrder.getCost() + (decoratedOrder.getCost() * taxRate);}
}// 使用示例
public class Main {public static void main(String[] args) {Order order = new BasicOrder(100.0);  // 基本订单// 添加运费order = new ShippingDecorator(order, 10.0);// 添加税费order = new TaxDecorator(order, 0.15);  // 15% 税率System.out.println("总费用: " + order.getCost());  // 输出:总费用: 126.5}
}

总结

在这个例子中,装饰器模式允许我们根据需要动态地为基本订单添加运费和税费,而无需修改基本订单的结构。这种灵活性在处理不同类型的订单时非常有用。如果你有其他问题或需要更深入的讨论,请告诉我!

http://www.15wanjia.com/news/195149.html

相关文章:

  • 杭州网站快速备案收费网站建设视频教程免费下载
  • 四川手机网站惠州网站建设服务
  • 站长之家0网站建设xiu021
  • 网站标题几个字合适wordpress首页怎么加内容
  • 接网站制作注册公司核名的流程
  • 书店网站开发目的和意义网页设计师的应聘岗位
  • 做网站为什么能挣钱在网站加上一个模块怎么做
  • 学校专业建设备案网站义乌便宜自适应网站建设厂家
  • 地理位置地图网站建设驻马店做网站
  • 怎么自己做充值网站网页源代码怎么看懂
  • 邵阳做网站的公司python官网
  • 什么网站发布找做效果图的怎么做网页连接数据库显示信息
  • 泉州seo建站网页首页动态设计
  • 百度指数免费查询防控措施持续优化
  • 绍兴网站建设08kejiWordPress自定义ID插件
  • 保亭交通工程建设局网站网上做问卷报酬不错的网站是
  • 网站怎么做海外推广wordpress页面设置教程
  • 个人网站页面设计素材ui模板免费下载
  • 阿里巴巴国际站运营模式建行官方网站多少
  • 网址搜索引擎百度快照优化网站
  • 哪里网站书最全谷歌搜索引擎入口2023
  • 武邑网站建设价格贵州省建设厅住房和城乡建设官网
  • 自己做的网站怎么在局域网中访问湖北宜昌网
  • 视频网站怎么做统计表电子科技公司网站
  • 网站注销流程做网站要备案吗
  • 秦皇岛网站开发多少钱wordpress 内链设置
  • 教材资源网站建设大连网站建设方案咨询
  • 做网站挂谷歌广告赚钱吗网站优化公司怎么选
  • 建设银行e房通网站凯里网络公司建设网站
  • win10 电脑做网站服务器设计师网上接单之后不给钱可以报警吗