zoukankan      html  css  js  c++  java
  • 读书笔记----软件设计原则、设计模式

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology
    这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology/homework/11833
    这个作业的目标 学习设计模式,了解一些程序开发过程中的需要遵循的设计原则

    一.所选书名

    《Android源码设计模式解析与实战》第二版

    二.简介

    本书专门介绍Android源代码的设计模式,共26章,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。主要内容为:优化代码的首步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、单例模式、Builder模式、原型模式、工厂方法模式、抽象工厂模式、策略模式、状态模式、责任链模式、解释器模式、命令模式、观察者模式、备忘录模式、迭代器模式、模板方法模式、访问者模式、中介者模式、代理模式、组合模式、适配器模式、装饰模式、享元模式、外观模式、桥接模式,以及MVC的介绍与实战和MVP应用架构模式。每个章节都对某个模式做了深入的分析,并且会对模式相关的技术点进行深入拓展,让读者在掌握模式的同时学习到Android中的一些重要知识,通过实战帮助读者达到学以致用的目的,且能够将模式运用于项目中,开发出高质量的程序。

    三.读书笔记

    1.书中第一章就介绍了面向对象的六大设计原则:

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

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

    • 依赖倒置的原则
      使用接口,就是面向接口编程。

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

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

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

    2.详细讲解了26中设计模式:

    • builder模式,原型模式,工厂方法模式,抽象工厂模式,策略模式,状态模式。责任链模式,解析器模式,命令模式,观察者模式,备忘录模式,迭代器模式,访问者模式,中介者模式,代理模式,组合模式,设配器模式,装饰模式,享元模式,外观模式,桥接模式等

    3.架构模式:

    • 讲解了mvc,mvp和mvvm三个架构模式,并举出实例帮助读者理解。

    4.心得:

    • 在学习java的io系统的时候,发现java使用了很多装饰者模式,使用装饰者模式,能在对象已经存在的情况下,通过装饰,改变对象的行为。
    • 让我深刻意识到程序开发的艺术,在写代码需要提前规划,分配好各个模块,运用上所学的设计模式,只有这样才能写出易扩展且健壮的代码
  • 相关阅读:
    洛谷 P1578 奶牛浴场 题解
    LOJ167 康托展开 题解
    三校联训 【NOIP模拟】寻找
    洛谷 P1809 过河问题 题解
    有关多边形面积的总结
    LOJ 103 字串查找 题解
    洛谷 P2384 最短路 题解
    POJ 2492 A Bug's Life 题解
    LOJ 10214 计算器 题解
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows 题解
  • 原文地址:https://www.cnblogs.com/hzhz00/p/14545386.html
Copyright © 2011-2022 走看看