Head First summary

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

1.  什么是设计模式:

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

2.  面向对象设计模式:

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

 

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

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

 

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

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

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

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

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

 

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

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

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


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

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


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

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


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

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

转载于:https://www.cnblogs.com/Blackeye286/p/3324653.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机快速入门指南】6.4:DHT11、DHT22单总线温湿度传感器

目录硬知识DHT11DHT22通信协议读取步骤数据解读DHT11DHT22示例程序DHT11_22.cDHT11_22.h测试程序main.c实验现象DHT11DHT22STC89C52 Windows 10 20H2 Proteus 8 Frofessional v8.9 SP2 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《温湿…

获取编辑器两种方法

编辑器,是地图数据进行编辑的主要工具,这个Editor其实当一个新的地图开始时就创建了。事实上,其他ArcMap扩展对象也是在创建地图时产生的。 为了获得这个Editor,可以使用FindExtensionByCLSID 或者FindExtensionByName接口。 priv…

Redis持久化的简单介绍

Redis的强大功能很大程度上是由于其将所有数据都存储在内存中,为了使Redis在重启后仍能保证数据不丢失,需要将数据从内存中以某种形式持久化到硬盘中。 Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。其中,…

图片响应式

img-responsive 编辑 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! img-responsive是图片响应式的意思,在Bootstrap框架中,有一个.img-responsive的CSS样式。应用这个样式以后…

【电路补习笔记】1、电阻的参数与选型

目录参数精度温度系数功率贴片电阻色环电阻传感器电阻老师的主页:唐老师讲电赛 视频地址:唐老师讲电赛之唐老师讲电子器件(1)电阻参数与选型 电阻按封装分为直插、贴片与印刷电阻(有些电阻直接印刷在PCB上)…

redis本地安装

redis在本地的安装及使用1、首先下载redis安装包,下载地址如下 http://pecl.php.net/package/redis/2.2.7/windows输入phpinfo()查看php版本进行相应的下载,注意版本2、下载完成后将php_redis.dll放到ext下,在php.ini中添加extensionphp_re…

Xcode模拟器和真机生成的日志查看(ios必知必会)

在进行实际代码开发的过程中,我们会生成一些plist文件,但是如何在调试过程中查看这些plist文件是否被成功生成以及生成的内容是否正确? 如果查看模拟器生成的日志和真机生成的日志到底如何查看? DEMO 首先生成一个plist文件 NSArr…

【Net】测试网络、查看IP

http://www.speedtest.cn/ 转载于:https://www.cnblogs.com/flydkPocketMagic/p/7380400.html

WordPress 不同分类目录调用不同模板的方法

https://www.jb51.net/cms/275887.html wordpress不同分类调用不同模板文件 用wordpress做站特别是企业站的时候,多个分类的内容不同需要显示的页面也不一样,比如有些分类显示的是产品缩略图,有些显示的是公司新闻公告等,此时需要…

【电路补习笔记】2、电容的参数与选型

目录分类无极性电容有极性电容电解电容钽电容参数精度温度系数材质耐压温度范围ESRESL电容并联高频特性焊盘(PAD)和旁路电容的放置老师的主页:唐老师讲电赛 视频地址:唐老师讲电赛之唐老师讲电子器件(1)电容…

【转】测试工程师日常工作需要关注的问题

在互联网公司追求价值最大化、成本最低化的今日,很多互联网公司开始提倡高的开发测试比率,工程师都有必要提升自己的贡献、产能,我们也需要将一些问题融入到工作中,在做中寻找答案。 跳出自己的小圈子,甚至跳出测试角色…

SQL 必知必会·笔记14更新和删除数据

1. 更新数据 基本的UPDATE语句,由三部分组成: 要更新的表列名和它们的新值确定要更新那些行的过滤条件更新单列示例: 1 UPDATE Customers 2 SET cust_email kimthetoystore.com 3 WHERE cust_id 1000000005; 更新多列的示例: 1 …

1005:I Think I Need a Houseboat-poj

1005:I Think I Need a Houseboat 总时间限制: 1000ms内存限制: 65536kB描述Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the state of Louisiana is actually shrinkin…

【电路补习笔记】3、电感的参数与选型

目录分类电感的模型参数精度直流电阻(DCR)通流能力(Irms)自谐振频率(SRF)饱和电流(Isat)标号老师的主页:唐老师讲电赛 视频地址:唐老师讲电赛之唐老师讲电子器…

八排序算法

概述 排序有内部排序和外部排序。内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据非常大,一次不能容纳所有的排序记录。在排序过程中须要訪问外存。 我们这里说说八大排序就是内部排序。 当n较大。则应採用时间复杂度为O(nlog2n)的排序方法…

wordpress CAS

https://wordpress.org/plugins/authorizer/#description 安装 Authorizer 插件,待测试。

poj 3436 (最大流)

题意:每台电脑共有p种零件,现在有n台机器,给出n台机器每台需要的一些种类零件当原料(0代表不需要,1代表必须要,2代表可有可无)和输出的产品零件。问怎么安排生产线使生产出来零件可以组装的电脑最多。 思路…

web前端java script BOM学习笔记2017.8.1

DOM: document object model 文档对象模型提供了一套可以访问和修改HTML文档内容的方法访问:获取修改:设置1 JS要去操作HTML元素,必须要先用JS找到他,转换为JS的DOM对象操作:a 标签属性b css属性c 元素内容2 找对象的方…

【电路补习笔记】4、二极管的参数与选型

目录常用二极管二极管的结构与特性结构参数最大整流电流IFI_FIF​最大反向工作电压URU_RUR​反向电流IRI_RIR​最高工作频率fMf_MfM​应用常见应用单相整流电路单相半波整流电路单相桥式整流电路稳压管稳压管的伏安特性参数稳压值UZU_ZUZ​稳定电流IZI_ZIZ​额定功耗PZP_ZPZ​动…

wordpress 自定义字段

https://codex.wordpress.org/Using_Custom_Fields 显示自定义字段 <&#xff1f;php the_meta&#xff08;&#xff09;; &#xff1f;> 获取自定义字段