正在搜索开发人员模式安装包_书来了 | 每个开发人员都应学习的5种设计模式...

程序员书库(ID:CodingBook) 猿妹编译 链接: https://medium.com/javascript-in-plain-english/5-design-patterns-every-developer-should-learn-a02835d15159
在科技行业,大多数开发人员倾向于将职业发展分为初级、高级、领导、架构师等,我认为这样的划分,技术水平会缺失一些东西,换个角度,我们可以将他们分为消费者和创造者,可以将其想象成是一开始使用React或Angular之类的框架,然后提升自己的技术水平,最终创建出一个可以供其他开发人员使用的框架,实现自己的角色转变。 为了做到这一点,你必须提升自己的技能水平,从所选编程语言的基本熟练程度入手,然后开始研究数据结构和算法,接着进入设计模式,设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。下面我们来看看每个开发人员都应该学习的设计模式有哪些? 单例模式 单例模式是 Java 中最简单的设计模式之一,此模式涉及到一个单一的类,该类负责创建对象,同时确保它是唯一创建的对象。此类可以直接访问而无需实例化该类对象。 例如,在进行数据库驱动程序之类的操作时,该模式可能会派上用场。如果你正在使用客户端,那么当你想了解Singleton中应用程序的当前状态时,它会派上用场。这样一来,你就可以随时随地访问该数据,缺点是,一点你添加了它,就无法让每个人都能直接访问它。 这种模式是最被滥用的模式之一,当一个类必须只有一个实例(不多也不少)时,可以使用单例。一些开发人员经常使用Singletons来尝试替换全局变量。Singleton是全局变量,因为它不会取消全局变量,它只是对其重命名。如果对象不是作为全局使用的,则不需要使用Singleton。 外观模式 简而言之,这是一种结构设计模式,它提供了到库,框架或任何其他复杂类集的简化接口。它为系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。以编译器为例,它具有一个解析器,一个语法分析器,一个标记器等等各种各样有趣的部分组成。 使用该模式的优点是它可以为你的消费者提供一个良好的界面,你还可以选择允许消费者进入内部,不过要注意的是出现过度简化,你可能会过度简化了该编译器的接口,使其不再可用,还有另一个需要注意的是,你可能最终会创建一个特定于单个用例的外观模式,以至于系统不被广泛使用。 bridge(桥接)模式 这种设计模式使你可以将一个大型类或一组密切相关的类拆分为两个独立的层次结构,这些层次结构可以相互独立地开发。 另一种方法是逐步添加功能,同时使用抽象类来分离主要差异。有时开发人员会在两个独立的维度上扩展子类,因此出现需要这种设计模式,这是类继承的一个常见问题。 这种模式涉及一个接口,该接口充当抽象类和实现类之间的桥梁。在开发示例中,桥模式试图通过从继承切换到对象组合来解决这个问题 策略模式 这种设计模式你可以定义一系列算法,然后将每个算法放在一个单独的类中,并使它们的对象可互换。比如有一个方案,你需要使用代码查找客户,过滤客户,然后通过电子邮件和文本向他们发送通知。通过提取访客记录,发送消息和电子邮件,然后将其创建为基础结构层的机制,这种情况就可以使用策略模式。将那些客户的筛选因素纳入一个策略中,该策略可帮助你找到所需的目标客户。将通知客户作为另一种策略,可以帮助你决定何时,何地以及如何联系这些客户。 观察者模式 到目前为止,这种模式是最受欢迎的,因为它几乎无处不在。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。这种特殊模式的缺点是,你可能会将其过度使用,从而进入一个恶性循环,使代码难以调试,而且只会让代码变得越来越混乱。
对于那些对学习设计模式感兴趣的人来说,这只是5种入门方法,关于更多设计模式的学习,猿哥这里想推荐一本书—— 《设计模式》

44297593e26c31c7d1c97e5689302015.png

这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。 作为开发者,不仅要学习或了解不同的模式,至少要在小型项目中去实践它们,只有在实践上,你才能看到不同的设计模式在不同地方的用处。 豆瓣书评
@monnand: 软件工程课上,感觉唯一有用的东西,就是设计模式了。要想让自己的软件还能维护,看看它吧 @qiao: 设计模式的圣经。 @匿名: 好书,一口气读完,非常愉悦。虽然讲的是面向对象设计,但里面的模式也可以套用到函数式上。

●输入m获取到文章目录

c8618c93dbcccc1621e7b880c34280d6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值