课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
设计模式是软件开发程序员都必须熟练掌握的一个编程知识,而今天我们就通过案例分析来了解一下,常见的一些设计模式都有哪些特点。
一、建造者模式
Builder模式,即建造者模式、构建者模式或生成器模式。要解决下面这些问题,就需要建造者模式上场了。
(1)如果可配置项逐渐增多,变成了8个、10个,那么在使用构造函数的时候,就容易搞错各参数的顺序,传递进错误的参数值,导致非常隐蔽的bug。
(2)如果必填的配置项有很多,把这些必填配置项都放到构造函数中设置,那构造函数就又会出现参数列表很长的问题。
(3)如果配置项之间有约束条件,那么校验逻辑就无处安放了。
(4)如果希望对象在创建好之后,就不能再修改内部的属性值,那么就不能暴露set()方法。
可以把校验逻辑放置到Builder类中,先创建建造者,并且通过set()方法设置建造者的变量值,然后再使用build()方法真正创建对象之前,做集中的校验,校验通过之后才会创建对象。
二、原型模式
如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(PrototypeDesignPattern),简称原型模式。
如果对象中的数据需要经过复杂的计算才能得到(比如排序、计算哈希值),或者需要从RPC、网络、数据库、文件系统等非常慢速的IO中读取,这种情况下,就可以利用原型模式,从其他已有对象中直接拷贝得到,而不用每次在创建新对象的时候,都重复执行这些耗时的操作。
三、桥接模式
桥接模式(BridgeDesignPattern)也叫桥梁模式,对于这个模式有两种不同的理解方式。
(1)将抽象和实现解耦,让它们可以独立变化。
(2)一个类存在两个(或多个)独立变化的维度,通过组合的方式,让这两个(或多个)维度可以独立进行扩展。
针对Notification的代码,将不同渠道的发送逻辑剥离出来,形成独立的消息发送类(MsgSender相关类)。其中,Notification类相当于抽象,MsgSender类相当于实现,两者可以独立开发,通过组合关系(也就是桥梁)任意组合在一起。所谓任意组合的意思就是,不同紧急程度的消息和发送渠道之间的对应关系,不是在代码中固定写死的,可以动态地去指定(比如,通过读取配置来获取对应关系)。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。