跟着cc学设计模式

1、责任链模式:在研磨设计模式里,责任链模式主要讲解的是 项目经理、部门经理、总经理之间审批活动经费之间的责任链,后来添加了审批出差经费、导致Handler接口要增加一个处理预支差旅费用的申请的方法(handlePreFeeRequest),这样所有的实现类都要实现这个方法,改变比较大。违背了,接口时常改动的原则(开闭原则)。解决办法是Handler接口处理请求的时候带一个参数(RequestModel rm),且返回的是Obect对象,然后 类 FeeRequestModel、PreFeeRequestModel 继承这个类。增加一种参数类型,导致了经理处理类也要增加一个如(DepManager2 专门处理PreFeeRequestModel 这种类型的请求,如果是FeeRequestModel这种类型的那么 还是DepManager类去处理请求 )增加 了对象的细粒度。Handler的实现接口,最主要的代码是:if(在自己的处理范围内){自己处理}else{下一个责任人去处理}。更加灵活的处理审批过程--》过滤流。

     核心是:分离职责、动态组合。

2、策略模式:在研磨设计模式里,策略模式主要讲解的是给客户报价,不同客户报价不同,上下文持有不同的策略选择不同的报价方式。讲解了策略与上下文的关系:有2种方式,例子是:支付方式:人民币支付、美元支付、卡支付,问题是卡支付的时候比前2种现金支付的时候,多了一个”卡号“,卡号这个属性即可以放在card里,也可以放在上下文里,如果放在上下文里,那么要多一个上下文对象Context2继承Context里面,多了个卡号属性。

  核心是:分离算法、选择实现。

3、生成器模式:书中的例子是解析一段文字,有2中方式:1、xml方式2文本方式。构造一个实体有:有头部、身体、尾部 3个部分。

  核心是:分离整体构建算法和部件构造。

4、桥梁模式:书中讲解了 消息发送 。消息首先分:普通消息、加急消息、特级消息。发送方式:站内发送、EMAIL发送、移动发送。这样消息和发送发送 就有9种不同的方式,形成了9个类,再加上一种消息类型、一种发送方式,要16个类。

    解决办法:抽象和实现分离开来,消息成一个抽象类,里面包含一个发送的接口。

                                                              发送构造一个接口,有3种实现方式:站内发送、EMAIL发送、移动发送。

  在客户端自动构造消息类型、自动构造发送方式。这样减少了很多类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值