设计模式(Design Patterns)-可复用面向对象软件的基础 06:适配器模式

一、写在前面的话之前的几篇文章分析了5种创建型模式,从设计模式(Design Patterns)-可复用面向对象软件的基础 06这篇文章开始,继续介绍7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式,其中对象的适配器模式是各种模式的起源。二、适配器模式(Adapter)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类
阅读本文

软件模块划分原理

在软件高层设计中,如何分解模块是首要考虑的问题。目前业界公认模块划分要按照“高内聚,低耦合”的原则来进行,那么如何划分才能满足“高内聚,低耦合”呢?下面来对模块分解原理方面进行一些探索,有考虑不周和不成熟之处还请大家不吝指正。 模块是按功能来分解的吗? 许多人可能有过经验,面对一堆功能性需求,多个不同的需求可能要放到同一个模块里,而某个需求又需要分解到多个模块里去实现。 比如一个词典软件(类似金
阅读本文

国外牛人总结的机器学习领域的框架、库以及软件

C++计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库OpenCV—它提供C++, C, Python, Java 以及 MATLAB接口,并支持Windows, Linux, Android and Mac OS操作系统。 通用机器学习 Closure通用机器学习 Closure Toolbox—Clojure语言库与工具的分类目录 Go自然语言处理 go-p
阅读本文

优云软件亮相“2017武汉安博会”

2017年3月15日,首站2017武汉公共安全产品暨警用装备展览会(以下简称“2017武汉安博会”)在湖北·武汉国际会展中心盛大开幕。来自全国各地的公安系统、安防工程商、系统集成商、安防代理商、金融、电力、交通、电信、安保、监狱、校园、物业及机关单位人士齐聚现场。本次大会以“科技引领、创新强业”为主题,同期安排了2017湖北公安视频综合应用专题论坛、2017湖北公安云计算、大数据应用论坛暨2017
阅读本文

软件设计目标—正确性

用Java语言实现一个计算器程序import java.io.*; public class Calculator { public static void main(String[] args) throws IOException{ BufferedReader b= new BufferedReader(new InputStreamReader(System.in));
阅读本文

团队项目评论

1.井小普:他们的作品微食堂做的有了基本的模型,前端做得比较完善,而且图片是通过自己亲自到食堂获得的,真是可靠。此外框架做的很好,作为用户可以比较容易使用他们的网页。他们的网页分了普通用户和餐厅用户。后者有上传的功能。 2.杨寒寒:他们的作品是记账软件,在他们的软件中,各个模块做的还是比较不错的,但是有待提高。比如用户体验方面,他们应该更多的考虑到用户使用的功能权限之类的东西。他们做的APP的视觉
阅读本文

《软件开发总结》--上位机之类的封装

class MainWindow -> class DP700 -> class SerialPort -> class QserialPort; 说明:其中的QserialPort是Qt提供的串口类,我们在其上封装了一层SerialPort,为串口提供了发送字符,接收字符,异常处理等功能,在SerialPort类的基础上再将其封装了一层,把其中的设备的功能比如打开设备,查询设备ID,设置设备的
阅读本文

经典软件体系结构风格(三)

MVC 软件体系结构风格  #模型-视图-控制器风格常被简称为MVC风格   --组件:模型、视图、控制器   --连接件:显式调用、隐式调用、其他机制(例如:Http协议) #工作机制:  Model:  --模型的职责    1.负责数据存取    2.负责业务逻辑实现    3.负责数据验证 #模型:模型是应用程序的核心。它封装内核数据与状态,对模型的修改将扩散到所
阅读本文

软件测试笔记(一)理论篇

1、软件测试按照测试分类有:黑盒测试和白盒测试。 黑盒测试   黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软
阅读本文

第十五课、线性表的顺序存储结构--------------狄泰软件学院

一、顺序存储结构的定义1、线性表的存储结构指的是用一段地址连续的存储单元依次存储线性表中的数据元素二、设计线性表存储结构的思路1、可以用一维表来实现顺序存储结构(1)、存储空间:T* m_array;(2)、当前长度:int m_lengthtemplate <typename T> class SqeList : public List<T> { protected: T* m_arra
阅读本文

软件设计师考试:设计模式

软件设计师考试:设计模式 笑傲江湖lcx 2017-05-06 17:18:01 浏览41 评论0 面向对象 软件开发 摘要: 在面向对象软件开发过程中,采用设计模式以复用成功的设计。 Brige(桥接)模式将对象的抽象和其现实分离,从而可以独立地改变它们,抽象类定义对该抽象的接口,而具体的子类则用不同的方式加以实现。 Composite(组合模式)是结构型对象模式的一个实例。它描述了如何构
阅读本文

软件设计师考试笔记:UML统一建模语言

软件设计师考试笔记:UML统一建模语言 笑傲江湖lcx 2017-05-06 17:09:31 浏览38 评论0 配置 class UML activity 摘要: 统一建模语言UML是用一组视图反应系统的各个方面,以完整地描述系统,每个视图代表系统描述中的一个抽象,显示系统中一个特定的方面。 UML设计视图包含了类、接口和协作,其中设计视图的静态方面由类图和对象图表现;动态图方面由交互图、
阅读本文

java软件设计模式只单例设计模式

概述设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。设计模式分为三种类型,共23种。创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、
阅读本文

软件测试需要具备的什么样的能力(知识体系)

声明:由于本人软件测试视野、能力或者经验的限制,文中观点必然会有局限性,欢迎探讨。1、软件测试知识体系  根据个人工作经验,整理出如下测试知识体系,如下图所示:   2、软件测试的职责和工作内容  首先,任何一家公司招聘测试工程师,必然会根据公司当前业务需求提出对测试人员的工作职责和工作内容要求。这里,我分别从腾讯/阿里/百度招聘上各找了一个招聘需求。可能这里大家认为招聘样本太少有局限性。但是
阅读本文

<软件架构与设计模式>侯捷老师关于Adapter类在STL中的深入解析和模式探讨

题外话:侯捷老师难得一年就来上九堂课就要会宝岛,特此留念签名赠语及合照以自勉。  学海无涯,为勤是岸<正文开始>   昨天晚上连上了3个小时的大课探究单单讲了Adapter一个类,幸运的是本人恰好在大一的时候接触过比如<functioinal>库类中的bind1st,bind2nd这些函数对象的使用方法,毕竟若要使用<algorithm>的话,里面几乎每一个函数都需要我们把模版中的函数对象比如Co
阅读本文

[软考]系统架构设计师考试大纲

一、考试说明:1.考试目标       考试合格人员应能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的特性;能够对项目睥系统架构进行描述、分析、设计与评估;能够按照相关标准编写相应的设计文档;能够与系统分析师、项目管理师相互协作、配合工作;具有高级工程师的实际工作能力和业务水平。       2.考试要求
阅读本文

《google软件测试之道》读书笔记

《google软件测试之道》 假想的理想情况下,”功能开发人员”编写功能代码,思维模式是创建,重点在于考虑用户、使用场景和数据流程上;”测试开发人员”的思路是破坏,通过使用测试工具与框架帮助功能开发人员解决特定的单元测试问题;一个真正关心用户的角色被称为”用户开发人员”。现实情况是:google的测试工程师(TE)就是用户开发人员,负责从用户的角度来思考质量方面各种问题。从开发角度,编写用户使用场
阅读本文

AOP软件设计

什么是面向方面的编程?为什么面向方面的软件设计?第二节AspectJ加入点切入点忠告结论参考文献对象技术难以对涉及全球约束和大流行为行为的问题进行定位,适当分离问题,并应用领域专有知识。什么是面向方面的编程?开发更简单的系统的成功导致更大的复杂性的愿望1为什么面向方面的软件设计?AOSD的主要原因是帮助解决凌乱对象架构的问题。AOSD的支持者声称面向对象的程序设计难以处理全球信息。此外,需要多个不
阅读本文

Mooc软件工程-01软件基础和软件过程

1 软件的概念  含义    软件 = code + data + documents    也就是软件的代码, 软件相关的输入输出等数据, 和一切相关的文档  特点    抽象的, 无形的, 逻辑实体    不会被磨损    可以移植    软件是复杂的, 难设计难实现难维护    软件是昂贵的2 软件危机和软件工程  软件危机    进度成本估算不准确    用户通常对完成的产品不满意
阅读本文

软件开发模型之瀑布模型

软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。 瀑布模型该模型给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品,投入使用。如下图: 瀑布模型,适用于客户需求比较明确的情况。优点:1.为项目提供了按阶段划分的检查点。3.
阅读本文