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

网站管理系统是什么建外贸网站 东莞

网站管理系统是什么,建外贸网站 东莞,泉州制作网站设计,广告营销策划是做什么的目录 定义结构适用场景使用示例 定义 装饰者模式是一种‌结构型设计模式‌,它通过将对象放入包含行为的特殊封装对象中,从而‌动态地为原对象添加新功能‌。 结构 适用场景 1)‌动态扩展功能‌ 需要在运行时为对象灵活添加或撤销功能…

目录

  • 定义
  • 结构
  • 适用场景
  • 使用示例

定义

       装饰者模式是一种‌结构型设计模式‌,它通过将对象放入包含行为的特殊封装对象中,从而‌动态地为原对象添加新功能‌。

结构

在这里插入图片描述

适用场景

1)‌动态扩展功能‌
       需要在运行时为对象灵活添加或撤销功能,且这些功能可自由组合。
‌        例如:为咖啡动态添加牛奶、糖、摩卡等配料。
2)‌避免继承爆炸‌
       当子类数量过多(如 MilkCoffee、SugarCoffee、MilkSugarCoffee…)时,装饰者模式提供更优雅的扩展方案。
3)‌不可修改原对象代码‌
       当无法修改原对象代码(如第三方库的类),但需扩展其行为时。
4)‌多层次功能叠加‌
       功能需要按不同顺序组合(如先加糖再加牛奶 vs 先加牛奶再加糖)。

使用示例

以下是装饰者模式在IO中的简化示例。
定义抽象组件

import java.io.IOException;/*** 抽象组件*/
public interface InputStream {int read() throws IOException;void close() throws IOException;}

定义具体组件

import java.io.IOException;public class FileInputStream implements InputStream {private String filename;public FileInputStream(String filename) {this.filename = filename;}@Overridepublic int read() throws IOException {System.out.println("从文件" + filename + "读取字节");return 0; // 模拟返回字节}@Overridepublic void close() throws IOException {System.out.println("关闭文件" + filename);}
}

定义抽象装饰者

import java.io.IOException;/*** 抽象装饰者*/
public abstract class FilterInputStream implements InputStream {protected InputStream wrappee;public FilterInputStream(InputStream in) {this.wrappee = in;}@Overridepublic abstract int read() throws IOException;@Overridepublic void close() throws IOException {wrappee.close();}
}

定义具体装饰者

import java.io.IOException;/*** 具体装饰者A*/
public class BufferedInputStream extends FilterInputStream {public BufferedInputStream(InputStream in) {super(in);}@Overridepublic int read() throws IOException {System.out.println("从缓冲区读取字节");return wrappee.read();}
}
import java.io.IOException;/*** 具体装饰者B*/
public class DataInputStream extends FilterInputStream {public DataInputStream(InputStream in) {super(in);}@Overridepublic int read() throws IOException {System.out.println("读取并转换数据类型");return wrappee.read();}public String readUTF() throws IOException {return "装饰后的字符串数据";}
}

测试

import java.io.IOException;public class Client {public static void main(String[] args) throws IOException {InputStream in = new FileInputStream("test.txt");in = new BufferedInputStream(in);in = new DataInputStream(in);in.read();System.out.println(((DataInputStream) in).readUTF());in.close();}}
http://www.dtcms.com/wzjs/611410.html

相关文章:

  • 批量建站怎么赚钱网页源码下载
  • 网页设计优化网站建设可以吗Wordpress可以卸载吗
  • vps网站助手建网站不花钱免费建站
  • 仿糗事百科网站源码dede二次开发分享+评论+互动设计签名 免费 名字
  • 仓库盘点网站开发销售网站设计方案
  • 安徽建站优化哪里有设计兼职网站有哪些
  • 新开传奇网站手游wordpress跳转手机站
  • 重庆网站推广营销360企业自助建站
  • 要建立网站怎么建立电子商务网站建设子项目
  • 网站开发程序员是什么学校毕业安卓市场网站建设
  • 定制网站建设公司东莞餐饮网站建设
  • 外贸网站建设培训wordpress 自定义feed
  • 销售管理软件app重庆百度seo整站优化
  • 织梦pc怎么做手机网站兴平网站建设
  • 北京教育网站建设企业网页设计公司
  • 礼品册兑换 网站建设百度热议排名软件
  • 长春网站建设设计我做的网站怎么提升排名
  • 辽宁省营商环境建设监督局网站公众出行服务网站建设
  • 360网站安全在线检测个人备案做分站的网站吗
  • 网站建设和客户面谈重庆网站推广的网站
  • 网站建设创业书贵阳企业网站建设制作
  • 济南手机网站建设网站推广积分
  • 苏州行业网站建设费用徐州seo网站推广
  • 网站尾部设计邢台企业网站建设价格
  • 墨西哥网站后缀微信营销工具有哪些
  • 建网站什么语言做网站二级页面的
  • 建筑八大员证报考网站5000元可注册劳务公司吗
  • 网站建设需要什么手续奢侈品 网站建设方案
  • 做房产网站不备案可以吗wordpress 图表插件
  • 如何学做网站外包网站建设电话营销话术