设计模式01 - 设计模式导论

       从本讲起,我们正式进入设计模式的学习。本讲主要介绍了如下内容:

  1、为什么要学习设计模式

  2、好的代码的常用的五个标准

  3、设计模式专题主要讲那些内容(如何写好代码)

1、为什么要学习设计模式

      ①提高复杂代码的设计和开发能力,避免重构

       需求:开发通用的功能模块,如何分层、分模块?应该怎么划分类?每个类应该具有哪些属性、方法?怎么设计类之间的交互?该用继承还是组合?该使用接口还是抽象类?怎样做到解耦、高内聚低耦合?该用单例模式还是静态方法?用工厂模式创建对象还是直接 new 出来?学习完设计模式之后,要刻意锻炼、积累这方面的能力。面对复杂代码、功能、系统的设计和开发,可以作为同事学习、临摹的范例

     ② 学好设计模式让读源码、学框架事半功倍,为你的职场发展做铺垫

2、好的代码的常用的五个标准

2.1. 可维护性(maintainability)

       在不破坏原有代码设计的情况下,能够快速地修改或者添加代码。

       代码的可维护性是由很多因素协同作用的结果。代码的可读性好、简洁、可扩展性好,就会使得代码易维护;相反,就会使得代码不易维护。更细化地讲,如果代码分层清晰、模块化好、高内聚低耦合、遵从基于接口而非实现编程的设计原则等等,那就可能意味着代码易维护。除此之外,代码的易维护性还跟项目代码量的多少、业务的复杂程度、利用到的技术的复杂程度、文档是否全面、团队成员的开发水平等诸多因素有关。

2.2. 可读性(readability)

       代码容易读懂,容易理解。

       是否符合编码规范、命名是否达意、注释是否详尽、函数是否长短合适、模块划分是否清晰、是否符合高内聚低耦合等等。

2.3. 可扩展性(extensibility)

  可扩展性,它表示我们的代码应对未来需求变化的能力。

  代码的可扩展性表示,我们在不修改或少量修改原有代码的情况下,通过扩展的方式添加新的功能代码。说直白点就是,代码预留了一些功能扩展点,你可以把新功能代码,直接插到扩展点上,而不需要因为要添加一个功能而大动干戈,改动大量的原始代码。

关于代码的扩展性,有条设计原则叫 “ 对修改关闭,对扩展开放 ”

2.4. 可复用性(reusability)

  可复用性,表示尽量减少重复代码的编写,复用已有的代码。

  比如,当讲到面向对象特性的时候,我们会讲到继承、多态存在的目的之一,就是为了提高代码的可复用性;当讲到设计原则的时候,我们会讲到单一职责原则也跟代码的可复用性相关;当讲到重构技巧的时候,我们会讲到解耦、高内聚、模块化等都能提高代码的可复用性。可见,可复用性也是一个非常重要的代码评价标准,是很多设计原则、思想、模式等所要达到的最终效果。

2.5. 可测试性(testability)

  是否可以容易被测试,单元测试是否好写功能模块是否独立等等

  代码的可测试性是一个相对较少被提及,但又非常重要的代码质量评价标准。代码可测试性的好坏,能从侧面上非常准确地反应代码质量的好坏。代码的可测试性差,比较难写单元测试,那基本上就能说明代码设计得有问题。

3、如何才能写出高质量的代码?

       掌握方法论(面向对象思想 + 设计原则 + 设计模式 + 编程规范 + 代码重构理论) AND 实战

       要写出满足这些评价标准的高质量代码,我们需要掌握一些更加细化、更加能落地的编程方法论,包括面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等。而所有这些编程方法论的最终目的都是为了编写出高质量的代码。

       比如,面向对象中的继承、多态能让我们写出可复用的代码;编码规范能让我们写出可读性好的代码;设计原则中的单一职责、DRY、基于接口而非实现、里式替换原则等,可以让我们写出可复用、灵活、可读性好、易扩展、易维护的代码;设计模式可以让我们写出易扩展的代码;持续重构可以时刻保持代码的可维护性等等。

     总结:本专题会就这五点(面向对象思想 + 设计原则 + 设计模式 + 编程规范 + 代码重构理论)进行讲解

posted @   云执  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示