《大话设计模式》---第1-4章---学习笔记

    这本书通篇都是以情景对话的形式,用一个又一个的小故事或变成实例来组织的,把非常贴近程序员生活原貌的场景写到了书中,深入浅出,使读者以一种轻松的状态来学习设计模式。以下是我阅读了本书的前四章的收获。

第一章
    以主人公面试受挫为引子,指出了平时我们在编程时不规范的地方。在面向对象编程时,我们往往把面向对象用成了面向过程,代码冗余,难以维护和扩展。作者以活字印刷为例,指出了面向对象编程的四大特点:可维护、可复用、可扩展、灵活性好。我们在使用面向对象编程时,要通过封装、继承、多态把程序的耦合度降低,作者以此提出了设计模式的概念。这一章主要是讲了简单工厂模式。以编写计算器程序为例,应用简单工厂模式,我们需要设计一个运算工厂类,以运算符号作为判断条件,将具体的执行过程与客户端程序分离,在创建运算的对象时,只需要创建运算工厂类的对象并向其传递运算符作为参数即可,如需扩展运算种类,只需在运算工厂类中增加分支,同时增加相应子类即可,避免了对程序的大量修改。可参考 https://blog.csdn.net/xingjiarong/article/details/49999121 之后简要介绍了UML类图,指出了类与类和类与接口之间的关系:继承、依赖、聚合、合成、关联。关于UML的详细介绍可参考 https://blog.csdn.net/jiuqiyuliang/article/details/8550281

第二章
以商场促销为例,循序渐进地引出了策略模式。作者先是以简单工厂模式来给出该问题的解决方法,指出商场促销策略经常变化,此时修改工厂类,增加子类都需要重新编译部署。而策略模式定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式是一种定义了一系列算法的方法,从概念上看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。同时,由于每个算法都有自己的类,可以通过自己的接口单独测试,所以简化了单元测试。可参考 https://blog.csdn.net/u012124438/article/details/70039943/

接下来的2章,没有再去介绍设计模式,而是对设计中用的原则进行了讲解

第三章
这一章介绍的是单一职责原则,即就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。如果能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,此时我们就应该进行职责分离。可参考 https://blog.csdn.net/jo__yang/article/details/52006982

第四章
介绍了开放-封闭原则,即软件实体(类、模块、函数等)应该可以扩展,但是不可修改,也就是说,对于扩展是开放的,对于更改是封闭的。在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。开放-封闭原则是面向对象设计的核心所在。我们应对程序中呈现出繁杂变化的那些部分做出抽象,但是,对于应用程序中的每个部分都刻意地进行抽象也不是一个好主意,我们应该拒绝不成熟的抽象。可参考 https://www.cnblogs.com/gaochundong/p/open_closed_principle.html

#笔记##设计#
全部评论
占楼 求一个快手内退码
点赞 回复 分享
发布于 2018-07-18 21:54

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务