目的和问题:

除了依赖关系。还要规范操作系统适配层的全部接口。仅仅要操作系统适配层的接口在移植过程中始终保持稳定。框架层的设计和实现就不会收到影响。可是为了实现同一接口的目标,为了保证相同的功能接口能够适用于不同的操作系统,必须对操作系统适配层进行更进一步的分解和细化

子系统设计:

子系统设计属于面向对象设计的范畴。是在面向对象分析工作结束之后进行的,对于那些相对独立却又比較复杂,不能用一个类来概述的分析类,我们能够把它们定义为一个子系统,同一时候精确地定义子系统的几口。子系统通过接口与其它的类和对象协同工作。实现整个系统功能。子系统设计是对系统架构的进一步细化,是对架构中的特定层次进行的更为精密的划分

子系统必须实现一个或者多个接口,这些接口清晰地定义了子系统的行为,这样除了对外的接口,子系统将内部的数据和操作全然封装了起来。对于一个接口固定的子系统而言,我们能够更具须要替换其内部结构和实现

子系统和包的差别:

  • 子系统通过接口清晰地定义了自己的行为,可是普通的包一般不会这样做
  • 子系统全然封装了它的内部数据和操作,普通包知识部分封装
  • 子系统非常easy被替换,普通的包不太easy被替换
  • 子系统清晰地定义了接口,外部客户通过接口来訪问该子系统。而包一般不定义接口。外部客户通过一个或者多个公共类来訪问包---外部客户对于子系统和包的不同訪问方式例如以下

因此子系统设计的首要目标是把一个组件中较复杂的部分抽象为固定的接口。在兴许的具体设计时,就能够用接口来替换整个子系统。通过这样的方式,能够有效地分离系统的复杂性,简化大型系统或大型模块的设计过程

FishiGUI的子系统设计:

对于不同的操作系统,操作系统适配层的实现可能大相径庭,可是为了保证框架层和应用层的稳定,操作系统适配层中不同的实现代码应该能在保持接口稳定的前提下自由替换,要求合理地设计操作系统适配层中的子系统而且精确定义子系统的几口

子系统设计和FishiGUI的子系统设计的更多相关文章

  1. 【转】App架构设计经验谈:接口的设计

    App架构设计经验谈:接口的设计 App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用REST ...

  2. GPS部标平台的架构设计(九)-GPS监控客户端设计

    交通部的部标过检,所有的测试都是从客户端发起的,也是在客户端体现的,在客户端承载了部标标准所要求的所有的功能,是整个部标平台当中工作量最大的部分,也是最繁琐的部分. 客户端设计面临两个问题: 1.基于 ...

  3. 如何去设计一个自适应的网页设计或HTMl5

    如何去设计一个自适应的网页设计或HTMl5 如今移动互联网随着3G的普及,越来越火爆,更多需求跟随而来!APP应用市场和APP应用数量成倍成倍的增长!从而给移动互联网带来新的挑战! 移动设备正超过桌面 ...

  4. 游戏UI框架设计(二) : 最简版本设计

    游戏UI框架设计(二) --最简版本设计 为降低难度决定先讲解一个最简版本,阐述UI框架的核心设计理念.这里先定义三个核心功能: 1:UI窗体的自动加载功能. 2:缓存UI窗体. 3:窗体生命周期(状 ...

  5. SLAM+语音机器人DIY系列:(四)差分底盘设计——1.stm32主控硬件设计

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  6. SLAM+语音机器人DIY系列:(四)差分底盘设计——2.stm32主控软件设计

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  7. 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》

    一.课程笔记 1.1  软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...

  8. loadrunner 场景设计-手工场景方案(Schedule)设计

    场景设计-手工场景方案(Schedule)设计 by:授客 QQ:1033553122 A.   定义方案schedule 在 Scenario Schedule面板中,选择一个方案schedule, ...

  9. RESTful API 设计指南,RESTful API 设计最佳实践

    RESTful API 设计指南,RESTful API 设计最佳实践 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). ...

随机推荐

  1. PHPExcel 长数字串显示为科学计数 与 其他错误

    一.解决 PHPExcel 长数字串显示为科学计数 在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号 ...

  2. 计算器(丑陋版 and 加法专用版)

    from tkinter import * win = Tk() win.geometry('500x300+400+300') win['bg'] = '#0099ff' win.title('魔方 ...

  3. ubuntu 16.04安装redis群集zz

    之前有文章,写明了如何安装redis.这里,进行群集配置. 创建Redis配置目录 /etc/redis: $ sudo mkdir /etc/redis/redis_cluster $cd /etc ...

  4. 服务器老是出现502 Bad Gateway?

    给你的upstream增加keepalive配置没有? upstream backend { server http://127.0.0.1:8888; keepalive 32; } 在nginx和 ...

  5. PHP文件操作函数

    1 获得文件名: basename(); 给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名.如果文件名是以 suffix 结束的,那这一部分也会被去掉. eg: 复制代码 代码如下: ...

  6. 如何使用Jenkins进行持续集成测试

    如何使用Jenkins进行持续集成测试: 安装Java环境: 安装Jenkins:两种方式,直接运行文件:使用tomcat运行: 创建一个job,构建的时候选择 execute Windows bat ...

  7. [scrapy] spider object has no attribute '_rules'

    这是因为__init__方法没有继承父类 解决办法: # -*- coding:utf-8 -*- from selenium import webdriver from scrapy.contrib ...

  8. Codeforces 1023 B.Pair of Toys (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)

    B. Pair of Toys 智障题目(嘤嘤嘤~) 代码: 1 //B 2 #include<iostream> 3 #include<cstdio> 4 #include& ...

  9. Plus One Linked List -- LeetCode

    Given a non-negative number represented as a singly linked list of digits, plus one to the number. T ...

  10. 【后缀数组】poj2406 Power Strings

    连续重复子串(pku2406)给定一个字符串 L,已知这个字符串是由某个字符串 S 重复 R 次而得到的,求 R 的最大值.算法分析:做法比较简单,穷举字符串 S 的长度 k,然后判断是否满足.判断的 ...