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

想在网上做外贸哪个网站靠谱2023推广平台

想在网上做外贸哪个网站靠谱,2023推广平台,关键词优化seo多少钱一年,江苏工程信息网目录 一、结构型模式 1.1、装饰者模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、结构型模式 1.1、装饰者模式 1.1.1、概念 装饰者模式就是指在不改变现有对象结构的情况下,动态的给该对象增加一些职责(增加额外功能&#…

目录

一、结构型模式

1.1、装饰者模式

1.1.1、概念

1.1.2、案例实现

1.1.3、优缺点

1.1.4、使用场景


一、结构型模式


1.1、装饰者模式

1.1.1、概念

装饰者模式就是指在不改变现有对象结构的情况下,动态的给该对象增加一些职责(增加额外功能)的模式.

例如,现在要开发一个点餐系统,有一个抽象类快餐类,快餐店里有炒面、炒饭,分别去继承实现.  如果现在需要添加额外的配料(比如 鸡蛋),那么计算额外加钱就会不叫麻烦,就需要分别给 炒面类 和 炒饭类 定义一个子类(鸡蛋炒面类、鸡蛋炒饭类).  再者,如果要新增一个快餐类(比如 凉皮),就需要定义更多的子类.  通过装饰者模式就可以在不需要添加子类的情况下,动态的添加配料.

装饰者模式中的角色如下:

  • 抽象构件角色:定义一个抽象接口用来规范附加的对象(比如上述的 快餐类).
  • 具体构件角色:实现抽象构件,将来会被添加一些职责(比如上述的 炒面类 和 炒饭类).
  • 抽象装饰角色:继承抽象构件 和 持有抽象构件的引用,可以通过 子类 扩展具体的构件.
  • 具体装饰角色:继承抽象装饰,重写相关方法,给具体的构件对象添加附加责任.

1.1.2、案例实现

实现上述案例.

/*** 抽象构建角色: 快餐*/
public abstract class FastFood {private float price; //价格private String desc; //描述public abstract float cost(); //获取最终价格public FastFood() {}public FastFood(float price, String desc) {this.price = price;this.desc = desc;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}}
/*** 具体构建角色: 炒饭类*/
public class Rice extends FastFood{public Rice() {super(10, "炒饭");}@Overridepublic float cost() {return getPrice();}}
/*** 具体构建角色: 面条类*/
public class Noodles extends FastFood {public Noodles() {super(12, "炒面");}@Overridepublic float cost() {return getPrice();}}
/*** 抽象装饰角色: 配料类*/
public abstract class Garnish extends FastFood {private FastFood fastFood;public FastFood getFastFood() {return fastFood;}public void setFastFood(FastFood fastFood) {this.fastFood = fastFood;}public Garnish(FastFood fastFood, float price, String desc) {super(price, desc);this.fastFood = fastFood;}}
/*** 抽象装饰角色: 配料类*/
public abstract class Garnish extends FastFood {private FastFood fastFood;public FastFood getFastFood() {return fastFood;}public void setFastFood(FastFood fastFood) {this.fastFood = fastFood;}public Garnish(FastFood fastFood, float price, String desc) {super(price, desc);this.fastFood = fastFood;}}
/*** 具体装饰角色: 鸡蛋配料*/
public class Egg extends Garnish{public Egg(FastFood fastFood) {super(fastFood, 1, "鸡蛋");}@Overridepublic float cost() {return getPrice() + getFastFood().cost();}@Overridepublic String getDesc() {return super.getDesc() + getFastFood().getDesc();}}
/*** 具体装饰角色: 培根配料*/
public class Bacon extends Garnish{public Bacon(FastFood fastFood) {super(fastFood, 2, "培根");}@Overridepublic float cost() {return getPrice() + getFastFood().cost();}@Overridepublic String getDesc() {return super.getDesc() + getFastFood().getDesc();}}
public class Client {public static void main(String[] args) {//1.带你一份炒饭FastFood food = new Rice();System.out.println(food.getDesc() + "  " + food.cost() + "元");System.out.println("================");//2.加一份鸡蛋food = new Egg(food);System.out.println(food.getDesc() + "  " + food.cost() + "元");System.out.println("================");//3.加一份鸡蛋food = new Egg(food);System.out.println(food.getDesc() + "  " + food.cost() + "元");System.out.println("================");//4.加一个培根food = new Bacon(food);System.out.println(food.getDesc() + "  " + food.cost() + "元");}}

执行结果如下:

1.1.3、优缺点

优点:

动态扩展:比继承具有更好的扩展性(继承时静态附加责任,装饰者时动态添加责任),可以在不修改原类的情况下,给对象添加责任.

缺点:

增加系统复杂度:装饰者比继承使用的类可能会少,但比继承使用的对象可能更多,更多的对象在程序排查错误的时候可能更复杂.

1.1.4、使用场景

1. 当不能采用继承的方式对程序进行扩展,比如存在大量的独立扩展,为了支持每一种组合产生大量子类(例如上述栗子中的给 炒饭加鸡蛋,导致出现 鸡蛋炒饭类),导致子类数目爆炸增长、或者是 类定位为 final 类型(不能继承).

2. 在不影响其他类的情况下,以动态的方式添加责任.

http://www.hkea.cn/news/428928/

相关文章:

  • 网站常用素材企业培训视频
  • 北京市通州区建设委员会网站网站新站整站排名
  • 太原网站推广只选中联传媒推广排名seo
  • 企业网站建设的常见流程为百度互联网营销顾问
  • 养殖企业网站网络营销策划名词解释
  • 如何进行电子商务网站推广?百度网盘app
  • 做情趣网站需要什么资质sem推广外包
  • 国外网站做任务赚钱的最近新闻有哪些
  • 建设部网站查资质中裕隆百度推广登录平台网址
  • 黄页网站大全免费山东网络推广优化排名
  • 网站文字代码常见的网络营销工具
  • 计算机毕设网站建设怎么改长沙网站设计拓谋网络
  • 类似红盟的网站怎么做aso优化推广
  • vs2013做网站怎样制作免费网页
  • b2c网站的开发无锡网络优化推广公司
  • 网站做视频在线观看营销活动推广方案
  • wordpress多站点统计google图片搜索引擎入口
  • 麻章手机网站建设百度网盘提取码入口
  • 网站后台管理系统的重要技术指标sem竞价托管费用
  • 包头怎样做网站我想做电商怎么加入
  • 株洲企业网站建设品牌2023免费b站推广大全
  • 仿制单页面网站多少钱免费制作网站app
  • 商城网站制作网站长尾词挖掘工具
  • 夹克定制公司trinseo公司
  • 四川智能网站建设制作网站链接分析工具
  • 制作销售网站有哪些宁波网络营销推广咨询报价
  • 佛山做外贸网站服务新闻发稿平台
  • 做网站前怎么写文档域名收录
  • 中信建设有限责任公司钟宁关键词优化的方法有哪些
  • 建站之星平台优化推广网站排名