zoukankan      html  css  js  c++  java
  • Head First summary

      学习面向对象好几年了,但一直没有深刻的理解面向对象,直到最近开始做自动化测试平台开发过程中,才发现面向对象的魅力。因而决定好好把设计模式学习下。首先先了解下设计模式相关的定义以及主意事项:

    1.  什么是设计模式:

       描述了软件设计过程中某一类常见问题的一般性的解决方案。

    2.  面向对象设计模式:

         描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。

    经典设计模式种类总共有23种(有点多),但是他们的设计都貌似都是围绕着面向对象三大机制展开的(急待求证),即: 封装、继承、多态。

      – 封装,隐藏内部实现
      – 继承,复用现有代码
      – 多态,改写对象行为

    从设计原则到设计模式的几点总结:

    1.  针对接口编程,而不是针对实现编程
       – 客户无需知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口。

    2.  优先使用对象组合,而不是类继承

           – 类继承通常为“白箱复用”,对象组合通常为“黑箱复用”。继承在某种程度上破坏了封装性,子类父类耦合度高;而对象组合则只要求被组合的对象具有良好定义的接口,耦合度低。

    3.  封装变化点
         – 使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次间的松耦合。

    设计模式几点更具体的设计原则:

    1.   单一职责原则(SRP):
      – 一个类应该仅有一个引起它变化的原因。

       [理解]:尽量一个类实现一种行为习惯,比如说不要让一个类既干这个又干那个。


    2.  开放封闭原则(OCP):
      – 类模块应该是可扩展的,但是不可修改(对扩展开放,对更改封闭)

       [理解]:尽量扩展类方法,而不要去修改一个类方法,比如说修改类方法类型,因为一旦修改,导致引用地方都必须修改。扩展新方法可以满足新需求。


    3.  Liskov 替换原则(LSP):
      – 子类必须能够替换它们的基类
    4.  依赖倒置原则(DIP):
      – 高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
      – 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。

       [理解]:高层尽量都已乃抽象,与细节无关,这样修改拓展新方法时不会影响到高层功能。


    5.  接口隔离原则(ISP):
      – 不应该强迫客户程序依赖于它们不用的方法。

    刚开始看设计模式,以上一些原则和总结理解不是很深刻,希望能在以后具体设计模式方法中能够得到加强,有助于对面向对象的深入理解和设计开发有一定帮助,为能开发出好用易扩展的测试框架和工具打一点基础。

  • 相关阅读:
    hdu5728 PowMod
    CF1156E Special Segments of Permutation
    CF1182E Product Oriented Recurrence
    CF1082E Increasing Frequency
    CF623B Array GCD
    CF1168B Good Triple
    CF1175E Minimal Segment Cover
    php 正则
    windows 下安装composer
    windows apache "The requested operation has failed" 启动失败
  • 原文地址:https://www.cnblogs.com/Blackeye286/p/3324653.html
Copyright © 2011-2022 走看看