专栏首页开发笔记设计模式入门笔记(1.1)

设计模式入门笔记(1.1)

什么是设计模式?

【From 百度百科】

设计模式是一种用于代码设计经验总结

设计模式的目的?为什么使用设计模式?

HelloWorld是不需要使用设计模式的,设计模式的主要应用场景是在大型应用的构建上,假想一下,在2万行代码中增加功能,如果程序可读性差,代码将难以扩展和优化。

所以,设计模式主要聚焦:

  • 构建工程化结构
  • 代码的复用性
  • 代码的易读性
  • 代码的可扩展性

注:

  • 不同设计模式适用于不同的场景。
  • 设计模式考虑的角度是整个软件体系的结构是否合理,是否稳定,而并非聚焦于单个的功能实现,所以在实际开发过程中,简单的问题或许会因为出于对于全局的优化考虑而复杂化。
  • 设计模式并不是完美的,经验可以解决现有问题,但同时也会带来新的问题,场景分类,权衡取舍,才是设计模式的正确打开方式。

学习设计模式之前需要了解的知识

面对对象三大特点:

  • 封装:隐藏复杂,暴露简单(隔离变化,保护数据,提高代码重用性)
  • 继承:复用现有代码(多态的前提)
  • 多态:改写对象行为(提高代码扩展性)

抽象与实例: 【举个栗子】

以吃早餐为例,每天早晨都会吃早餐,但是今天可能喝豆浆吃油条,明天呢吃包子喝粥。

每天早晨都会吃东西(正常情况下),但是每天都不一样。

那么每天早饭的内容就是实例,而每天都要吃早饭的行为或者说习惯称之为抽象。

Conclusion:抽象就是指不变的事物(每天都吃早餐),而实例是指会变化的事物(每天吃的都不一样)。

复用与活字印刷:

活字印刷与复用的思想不谋而合。举个栗子简单描述一下,比如说要印刷一份出师表,按照以往的科技,先在石板上调刻一份出师表然后刷墨,然后用纸印。但是这块石板就只能印出师表了,活字印刷的思想就是把字拆解开来,需要的时候再进行组合。比如说,出师表有738个字,那就先刻500个独立的字(假设有重复)然后排列组合印刷。等下一次,要印离骚了,先把500字中能用的先拿出来,然后刻剩下的字。久而久之,每次印刷只需要排列字的顺序就行了。

在活字印刷中,复用的就是一个个单独的字。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 创建型模式————原型模式(2.3)

    收货地址包括姓名,电话和住址。第一次点外卖的时候需要完整的填写这些信息,但是之后点的过程基本上是不用再重新填写这些信息的。试想一下,每次下单之前都要填一遍姓名,...

    Noneplus
  • SpringBoot——Web开发(静态资源映射)

    SpringBoot对于SpringMVC的自动化配置都在WebMVCAutoConfiguration类中。

    Noneplus
  • VHR配置数据库开发环境

    vhr面向的群体范围并不大,并非属于互联网应用,所以市面上鼓吹的高并发,高性能对于这个项目来说并不适用。

    Noneplus
  • Python 中最简最好的设计模式

    Python 诞生于1991年,而下一场技术革命已然开始,AI 时代已然成风。在 AI 领域中已经被广泛使用的 Python 必将成为下一个时代的第一开发语言!

    py3study
  • 学不会设计模式,是因为你还没用过这个神奇的网站!

    如果我们将程序员简单分为两类人:一类对于软件设计模式一头雾水,代码写的随心所欲;另一类将设计模式玩的炉火纯青,代码写的优雅如诗。

    五分钟学算法
  • 如何真正理解好一个「设计模式」?

    设计模式是无数开发者前辈,经过大量编码实践,总结下来的一套能提高程序扩展性、可复用性的哲学。它就像建筑大师多年经验沉淀下来的楼宇设计方法,又像武侠小说中的武林高...

    double
  • 设计模式——代码如若初相见

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

    100000860378
  • 设计模式与Java

        20世纪60年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整...

    用户2192970
  • 《一个陌生同学的留言》-- “老尚,你一定要讲设计模式”

    image.png 以前就曾经有人问过我,“老尚,你说是不是有的面试官以虐新人为乐?”,,,我说,“传说中,据说有”,,,他说,“我觉得这应该不是传说。” //...

    web前端教室
  • Python中的Numpy入门教程

    很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的...

    hankleo

扫码关注云+社区

领取腾讯云代金券