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

绿化面积 建设网站西安疫情最新数据消息5分钟前

绿化面积 建设网站,西安疫情最新数据消息5分钟前,学科专业建设思路和目标,中国食品网责任链模式:和上一篇策略模式一样也是行为型模式。创建一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它…

责任链模式:和上一篇策略模式一样也是行为型模式。创建一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推

介绍
  • 意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
  • 主要解决问题:客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,总的来说就是职责链将请求的发送者和请求的处理者解耦。
  • 关键代码:抽象类里面聚合它自己(聚合和抽象类我在设计模式的六大原则-CSDN博客有介绍和示例),里面判断是否满足条件,如果没达到条件则向下传递。
  • 优点:1、降低耦合度。它将请求的发送者和接收者解耦。 2、简化了对象。使得对象不需要知道链的结构。 3、增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次序,允许动态地新增或者删除责任。 4、增加新的请求处理类很方便。
  • 缺点:1、不能保证请求一定被接收。 2、系统性能将受到一定影响,而且在进行代码调试时不太方便,可能会造成循环调用。 3、可能不容易观察运行时的特征,有碍于除错。

还这个绘制三角形、圆形、矩形图案例子

  1. 创建抽象的绘制类。
    public abstract class AbstractDraw {public static String TRIANGLE = "三角形";public static String CIRCULAR = "圆形";public static String RECTANGLE = "矩形";protected String shape;//责任链中的下一个接收者protected AbstractDraw nextDraw;public void setNextDraw(AbstractDraw nextDraw){this.nextDraw = nextDraw;}public void draw(String shape, String colour){if(this.shape.equals(shape)){drawing(colour);}if(nextDraw !=null){nextDraw.draw(shape, colour);}}abstract protected void drawing(String colour);}
  2. 创建扩展该绘制类的
    三角形责任实体类
    public class TriangleDraw extends AbstractDraw{public TriangleDraw(String shape) {this.shape = shape;}@Overrideprotected void drawing(String colour) {//绘制一个colour颜色的三角形逻辑}
    }
    圆形责任实体类
    public class CircularDraw extends AbstractDraw{public CircularDraw(String shape) {this.shape = shape;}@Overrideprotected void drawing(String colour) {//绘制一个colour颜色的圆形逻辑}
    }
    矩形责任实体类
    public class RectangleDraw extends AbstractDraw{public RectangleDraw(String shape) {this.shape = shape;}@Overrideprotected void drawing(String colour) {//绘制一个colour颜色的距形逻辑}
    }
    
  3. 创建不同类型的责任编排成链
    public class ChainPatternDemo {//编排成链static AbstractDraw getChainOfDraw(){AbstractDraw triangleDraw = new TriangleDraw(AbstractDraw.TRIANGLE);AbstractDraw circularDraw = new CircularDraw(AbstractDraw.CIRCULAR);AbstractDraw rectangleDraw = new RectangleDraw(AbstractDraw.RECTANGLE);triangleDraw.setNextDraw(circularDraw);circularDraw.setNextDraw(rectangleDraw);return triangleDraw;}//使用示例public static void main(String[] args) {AbstractDraw drawChain = getChainOfDraw();drawChain.draw(AbstractDraw.TRIANGLE,"红色");drawChain.draw(AbstractDraw.CIRCULAR,"蓝色");drawChain.draw(AbstractDraw.RECTANGLE,"绿色");}
    }

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

相关文章:

  • 做论坛网站需要什么备案新站seo优化快速上排名
  • 动漫网站html百度网盘搜索
  • 怎么看一个网站什么语言做的宝鸡seo培训
  • 数据库网站建设公司他达拉非片
  • 英文商城网站建设搜索引擎营销的特点
  • 易优建站系统图片百度搜索
  • 网站开发不用框架web网站设计
  • 技能网站建设项目需求武汉网络推广外包公司
  • 安卓市场下载手机版优化网站排名技巧
  • 建设网站平台哪个好互联网营销外包推广
  • 工商注册企业名称查询广东seo网站推广代运营
  • 中纪委网站两学一做征文资源平台
  • java高端网站建设现在广告行业好做吗
  • wordpress 制作下载优化关键词怎么做
  • 宁波网站建设哪个公司好百度爱采购推广怎么入驻
  • 重庆市建设工程信息网特种作业企业网站seo多少钱
  • 域名备案做电影网站制作免费个人网站
  • 公司网络营销方案优化设计七年级上册数学答案
  • 网站建设策划方案网址搜索引擎
  • 艺术培训学校系统网站怎么做百度优化是什么
  • 自己的网站做飘窗百度推广账号登录入口
  • 国内好的网站建设国内外十大免费crm软件推荐
  • 淄博品质网站建设百度销售推广
  • 网站建设学习内容网站模板哪家好
  • 建立b2b网站成本微信营销平台系统
  • 学做衣服网 缤纷网站手机百度ai入口
  • 点餐系统网站建设画质优化app下载
  • 上海都有哪些企业公司seo网站seo
  • 进一步加强政府网站建设网站建设介绍ppt
  • 做网站的设计软件上海seo推广外包