读书笔记----软件设计原则、设计模式

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology/homework/11833
这个作业的目标 了解软件设计原则、设计模式

参考书籍

《设计模式之禅》

书籍简介

如果说“四人帮”的《设计模式》是设计模式领域的“圣经”,那么之后出版的各种关于设计模式的书都可称之为“圣经”的“注释版”或“圣经的故事”。本书是得道者对“圣经”的“禅悟”,它既不像“圣经”那样因为惜字如金、字字珠玑而深奥、晦涩和难懂,又比“圣经”的“注释版”更深刻和全面、更通俗和生动、更接近开发者遇到的实践场景,更具指导性。本书兼收并蓄、博采众长,也许是设计模式领域里的下一个里程碑之作。全书共分为四部分,第一部分从原理的角度阐述了面向对象程序设计的6大原则;第二部生动地讲解和剖析了23种常见的设计模式,并进行了扩展,通俗易懂,趣味性极强而又紧扣模式的核心;第三部分对各种相关联的设计模式进行了深入分析和比较,旨在阐明各种设计模式比较理想的应用场景和它们之间的区别;第四部分探讨了设计模式的混编,讲解了如何在实际开发中将各种设计模式混合起来使用,以发挥设计模式的最大效用。

读书笔记

一、六项基本原则:

1.单一职能原则:

每一个类实现的功能和作用要单一,比如实体类实现的是单纯的属性和get,set方法,是为了能生成一个纯净的类。实现逻辑操作的要重新生成一个类,不要在实体类中给出复杂业务逻辑的操作。调用到业务逻辑的服务操作也要重新生成一个类,边界尽量清晰。

2.里氏替换原则:

子类可以继承父类的私有方法以外的所有方法和非私有的属性,重写可以覆盖掉父类中同名同参数的方法。子类必须完全实现父类的方法。子类可以有自己独立的属性和方法。覆盖或实现父类的方法时输入参数可能会被放大。(如果子类给的参数范围大于父类,不会被执行到,要求子类给参数类型必须等于父类)。 覆盖或者实现父类的方法时输出可以被缩小范围。(父类的返回参数类型必须大于子类)。

3.依赖倒置的原则

使用接口,就是面向接口编程。

4.接口隔离

接口实现的作用越简单越好,最好是只针对某一项相同对象的。

5.迪米特法则:

类之间的调用,最好不要知道被调用者中其他信息,只要知道对应的接口即可。具体如何实现不需要知道,或者越少越好。

6.开闭原则:

使用extends(继承)的方法实现原有的类的方法以及扩展其中的应用,应用去系统升级,替换实现类即可,不需要太多变动。

二、设计模式的23种模式,主要分为三大类:

创建型模式,结构型模式和行为型模式

1.创建型模式主要有5种:工厂模式,抽象工厂模式,单例模式,建造者模式和原型模式。

2.结构型模式有7种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。

3.行为模式有11种:策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式。

心得体会

作者使用设计模式组合,开发出了高内聚、低耦合、对修改关闭,对拓展开放等优点集一身的非常健壮的程序,说明了23种设计模式并不是固定写死、不能共存的,开发人员应该深入了解这些设计模式,对业务需求也要有深刻理解,这样才能拥抱变化,从容处理。设计模式不是工具,他是软件开发的哲学,他能知道你如何去设计一个优秀的架构、编写一段健壮的代码、解决一个负责的需求。因为它是指导思想,你可以在此基础上自由发挥,甚至是自己设计出一套设计模式。编程是一门艺术,设计模式更是编程的指导思想。书上说,心中无设计模式,而所想所写处处是设计模式,这才是最高境界。希望有一天可以站在一个更高的层次去赏析程序代码,完成代码工人到架构师的蜕变。

posted @ 2021-03-16 18:25  墨荒  阅读(93)  评论(0编辑  收藏  举报