当前位置: 首页 > 科技观察

开发中常用的5种设计模式

时间:2023-03-22 16:05:04 科技观察

说到设计模式,很多人认为是老生常谈。有人认为设计模式是必须的,也有人认为设计模式没那么重要。那么我们在工作中是否应该注重设计呢?图案呢?我们应该在生产过程中大量应用设计模式吗?如果你从来没有听说过设计模式,我敢打赌你不是一个合格的程序员。这就好比一个人说自己是数学家,却从来没有听说过勾股定理。这怎么可能?工厂模式是最基本的设计模式,也是最常用的设计模式。我一直在使用它,但我不知道我正在使用的设计模式。工厂模式的名称意味着它是一个加工厂。与现实不同的是,这里生产的不是衣服、皮鞋、裤子等,而是我们面向对象编程中最重要的对象。我们都知道现实中工厂的好处,不仅可以批量生产,还可以批量定制,因为它有不同的模具,可以生产出人们需要的各种类型的产品。在软件开发中,我们更注重使用对象的方法。我们不太关心对象是如何创建的。因此,抽象工厂解决了我们的问题。我们只需要定制我们??需要的产品功能接口,然后让工厂根据我们的接口生产对象,也就是实现接口。通过这样的调用,如果我们的产品有问题,可以随时召回,工厂可以随时打补丁,实现了产品的灵活扩展。适配器模式现实中,我们经常给手机充电,我们使用的是电源适配器,为什么叫适配器呢?因为它不仅可以给自己的手机充电,还可以给别人的手机充电,甚至给其他电力用户充电。设备充电,因能适配各种充电设备,故称为适配器。在软件开发中,我们几乎或者不可能开发出一个没有数据库的应用程序,所以选择什么数据库是我们最需要关心的,因为如果选择不当,后期可能会出现性能瓶颈,所以有没有a如何在不修改代码,或者代码修改很少的情况下无缝切换数据库?答案是适配器模式。我们先定义适配器接口,然后让各种数据库去实现我们定义的接口。我们在代码中使用接口中定义的方法,这样当我们要切换数据库时,只需要在数据库上实现相应接口的方法即可。我们可以完成数据库的适配,无缝对接。观察者模式观察者模式也称为通知模式,是一种一对多的模式。在现实中,当校长或老师在台上发出命令时,扩音器会把命令传达给每个学生。当学生们听到命令时,他们会有自己的反应。校长或老师不必一一告诉学生。通讯,因为broadcastspeaker会把命令传给学生,这里broadcastspeaker是一个观察者,老师和校长是被观察者,学生是被通知的对象,所以观察者模式也叫发布-订阅模式。比如在软件开发中,我们的产品就有这样的功能。用户下单付款成功后,会发送短信通知用户。如果你不仅要发送短信,还要发送邮件和语音通知,在这种情况下,我们可以采用观察者模式。我们将支付成功信息放入消息队列中。至于发送短信或者发送邮件,各个业务模块订阅消息队列进行处理。这样在订单模块中,就不需要短信模块和邮件模块一一通知了。装饰者模式在现实生活中,一般情况下,一个人换了一件衣服后,我们还是能认出他来。衣服就是他的装饰品,也就是说装饰品不影响一个人的容貌,也就是不影响一个人的功能,但是通过穿一件高档的外套,可以提升一个人的气质,就是装饰的作用,而装饰者模式就是在不改变对象的情况下,通过装饰让一个对象变得更加强大。举个软件开发中的案例,比如我们设计了一个发短信的功能,经过测试和上线测试,这个功能没有问题,但是现在有一个新的需求,发短信可以使用语音提醒一下,如何在不影响原有功能的情况下实现这个功能呢?这时候我们就可以使用一个装饰器,也就是给短信发送类装饰一个语音功能,让它不仅可以发送短信,还可以实现发送语音的功能。战略模式战略,顾名思义,是实现目标的解决方案的集合。简单的说就是各种方法的集合,都是用来实现一件事的。在软件开发中,一个对象针对不同的场景使用不同的策略来实现相同的功能,这就是策略方法。如果你听说过多态,你会发现它和多态的定义非常相似。不同的是多态性不同。对象对同一个操作有不同的处理方式,策略模式就是同一个对象对同一个操作使用不同的策略。比如我们有一个7天的国庆游项目。起点和终点都是北京到莫斯科,但可以采取不同的策略,比如飞机、火车、自驾。同一个梦想可以用不同的方式实现。淘宝首页的千人千面也是战略模型,展示产品。不同的产品展示给不同的人,这是策略决定的。小结如果你够细心,软件开发中的设计模式不是凭空产生的,它一定是来源于生活,其实任何知识的产生都是来源于生活,只是我们学习提炼之后,它更高比生命。设计模式不是万能的,它不能帮你解决所有问题,但它可以帮你解决大部分问题,而且如果你在编码中使用设计模式,你会发现你的代码看起来会更清晰、更有条理。学习设计模式,使用设计模式不是最终目的,我们的最终目的是无招取胜,当你忘记了所有的设计模式,但是当你能在编码中使用它们的时候,你才算学习设计模式没有用。