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):
      – 不应该强迫客户程序依赖于它们不用的方法。

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

  • 相关阅读:
    thinkphp计划任务使用cronRun-Thinkphp3.1版
    AJAX 跨域请求
    可以做外汇交易接口的网站
    thinkphp 定时执行php文件 php自动执行php文件
    关于major、minor的解释
    Codeforces Round #370 (Div. 2) A B C 水 模拟 贪心
    2016 ACM/ICPC Asia Regional Dalian Online 1006 /HDU 5873
    Codeforces Round #280 (Div. 2) A B C 暴力 水 贪心
    codevs 1299 线段树 区间更新查询
    Codeforces Round #260 (Div. 2) A B C 水 找规律(大数对小数取模) dp
  • 原文地址:https://www.cnblogs.com/Blackeye286/p/3324653.html
Copyright © 2011-2022 走看看