子系统设计和FishiGUI的子系统设计
目的和问题:
除了依赖关系。还要规范操作系统适配层的全部接口。仅仅要操作系统适配层的接口在移植过程中始终保持稳定。框架层的设计和实现就不会收到影响。可是为了实现同一接口的目标,为了保证相同的功能接口能够适用于不同的操作系统,必须对操作系统适配层进行更进一步的分解和细化
子系统设计:
子系统设计属于面向对象设计的范畴。是在面向对象分析工作结束之后进行的,对于那些相对独立却又比較复杂,不能用一个类来概述的分析类,我们能够把它们定义为一个子系统,同一时候精确地定义子系统的几口。子系统通过接口与其它的类和对象协同工作。实现整个系统功能。子系统设计是对系统架构的进一步细化,是对架构中的特定层次进行的更为精密的划分
子系统必须实现一个或者多个接口,这些接口清晰地定义了子系统的行为,这样除了对外的接口,子系统将内部的数据和操作全然封装了起来。对于一个接口固定的子系统而言,我们能够更具须要替换其内部结构和实现
子系统和包的差别:
- 子系统通过接口清晰地定义了自己的行为,可是普通的包一般不会这样做
- 子系统全然封装了它的内部数据和操作,普通包知识部分封装
- 子系统非常easy被替换,普通的包不太easy被替换
- 子系统清晰地定义了接口,外部客户通过接口来訪问该子系统。而包一般不定义接口。外部客户通过一个或者多个公共类来訪问包---外部客户对于子系统和包的不同訪问方式例如以下
因此子系统设计的首要目标是把一个组件中较复杂的部分抽象为固定的接口。在兴许的具体设计时,就能够用接口来替换整个子系统。通过这样的方式,能够有效地分离系统的复杂性,简化大型系统或大型模块的设计过程
FishiGUI的子系统设计:
对于不同的操作系统,操作系统适配层的实现可能大相径庭,可是为了保证框架层和应用层的稳定,操作系统适配层中不同的实现代码应该能在保持接口稳定的前提下自由替换,要求合理地设计操作系统适配层中的子系统而且精确定义子系统的几口
子系统设计和FishiGUI的子系统设计的更多相关文章
- 【转】App架构设计经验谈:接口的设计
App架构设计经验谈:接口的设计 App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用REST ...
- GPS部标平台的架构设计(九)-GPS监控客户端设计
交通部的部标过检,所有的测试都是从客户端发起的,也是在客户端体现的,在客户端承载了部标标准所要求的所有的功能,是整个部标平台当中工作量最大的部分,也是最繁琐的部分. 客户端设计面临两个问题: 1.基于 ...
- 如何去设计一个自适应的网页设计或HTMl5
如何去设计一个自适应的网页设计或HTMl5 如今移动互联网随着3G的普及,越来越火爆,更多需求跟随而来!APP应用市场和APP应用数量成倍成倍的增长!从而给移动互联网带来新的挑战! 移动设备正超过桌面 ...
- 游戏UI框架设计(二) : 最简版本设计
游戏UI框架设计(二) --最简版本设计 为降低难度决定先讲解一个最简版本,阐述UI框架的核心设计理念.这里先定义三个核心功能: 1:UI窗体的自动加载功能. 2:缓存UI窗体. 3:窗体生命周期(状 ...
- SLAM+语音机器人DIY系列:(四)差分底盘设计——1.stm32主控硬件设计
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
- SLAM+语音机器人DIY系列:(四)差分底盘设计——2.stm32主控软件设计
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
- 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》
一.课程笔记 1.1 软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...
- loadrunner 场景设计-手工场景方案(Schedule)设计
场景设计-手工场景方案(Schedule)设计 by:授客 QQ:1033553122 A. 定义方案schedule 在 Scenario Schedule面板中,选择一个方案schedule, ...
- RESTful API 设计指南,RESTful API 设计最佳实践
RESTful API 设计指南,RESTful API 设计最佳实践 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). ...
随机推荐
- TCP三次握手四次分手
TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标 ...
- shell 通过ANSI转换颜色
格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[控制码" 如果单纯显示字体颜色可以固定控制码位0m. 格式: echo -e "\033[字背景 ...
- 几个很好的OJ网站
很友好的OJ网站(OJ是open judge,在线评测) POJ 北京大学ACM ZOJ 浙江大学ACM WOJ 武汉大学ACM(一个题目提交通过后,可以查看通过该题的所有代码) 唯一不好的地方是题 ...
- python gui tkinter用法杂记
1.treeview遍历 iids = tree.selection() t = tree.get_children() for i in t: print(tree.item(i,'values') ...
- ORM- 图书系统查询
图书信息系统 表结构设计 # 书 class Book(models.Model): title = models.CharField(max_length=32) publish_date = mo ...
- Cannot open include file: 'libxml/xpath.h': No such file or directory
在搭建scrapy爬虫框架时,通过pip安装lxml遇到了这个问题,我是用32位的windows搭建爬虫框架,python版本是2.7.12, 解决方案如下: 原因: 在网上各种找原因,有大神是说没安 ...
- 测试social_navigation_layers
目标:测试social_navigation_layers 方法: 使用move_base接口启动costmap_2d 这样就能直接用configure方法来进行测试不用自己写代码 一.启动move_ ...
- 平滑部署war包到tomcat-deploy.sh
#!/bin/sh #check war exists echo "check war exists" war_file_path=/data/tomcat8/webapps wa ...
- php(间接)调用nmap命令时的选项特殊点
使用php调用pythn-nmap时,发现无法正常执行扫描动作 将nmap命令直接写入php,由后者调用,发现仍然无法执行,提示需要添加“-Pn”选项 原来是: 正常情况下:nmap -n host ...
- [bootstrap] 修改字体
file: variable.less @font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-seri ...