设计模式读书笔记

  1. 面向对象的编程中,不要对于所有属性都实现getter和setter,那样会暴露数据,使其容易被修改,退化为面向过程的方法。
  2. 在类内部向外部必须提供一个类对象时,这样,相关的属性就会被修改。应避免外部可以修改内部对象属性。
  3. 对于例如Constant类、Util类等采用面向过程来组织的类尽量做到职责单一,定义一些细化的小类。

接口和抽象类
  1. 抽象类(is-a
    抽象类不允许被实例化
    抽象类可以包含属性和方法
    子类继承抽象类必须实现抽象类中的方法
    解决代码复用,一般是自底向上
  2. 接口(has-a
    接口不能包含属性
    接口只能声明方法
    实现接口时,必须实现接口中全部方法(除了默认方法)
    解决抽象,一般是自顶向下
设计原则
  1. 基于抽象编程而非实现编程,通过抽象,实现扩展性,灵活性。
  2. 命名脱离实际实现

组合和继承
  1. 继承用来表示is-a关系,可以解决代码复用性,但是,当涉及到继承层次深,情况多变且复杂时,很容易造成冗余,分支多,这种情况下少用或者不用继承。
  2. 继承的作用:表示is-a关系,支持多态,代码复用,可以通过接口、组合、委托三者结合来替换。
  3. 结构稳定,不易替换,可以使用继承,比如基本的几个设计模式,模板设计模式、建造者模式等,或者业务逻辑不复杂,继承层次浅,可以使用继承。其他的层次深,较复杂的使用接口+组合+委托更好。
发布了76 篇原创文章 · 获赞 53 · 访问量 4153

猜你喜欢

转载自blog.csdn.net/qq_42254247/article/details/103906796