Java编程实现NBA赛事接口调用实例代码
405
2023-01-01
本文目录一览:
一、善用UML工具
用例图
用于需求分析阶段,从用户角度描述系统功能。
用例图
静态图:类图、对象图、包图
静态图
交互图-时序图(注重时间)
常用组合片段:选项(Opt)、循环(Loop)、并行(Par)、抉择(Alt)、中断(Break)
时序图
交互图-协作图(注重对象)
协作图
行为图-状态图(注重状态)
状态图
行为图-活动图(注重活动)
活动图
实现图-组件图
组件图
实现图-部署图
部署图
二、遵从设计原则
设计模式基础
单一职责:一个类只负责一个职能;
里氏转换:在子类中不应重写、重载父类的方法,子类要能替代父类;
接口隔离:不依赖不需要的接口,拆分大接口;
迪米特法则:一个对象应该对其他对象保持最少的了解(低耦合);
开放封闭:对扩展开放,对修改关闭;
依赖倒置:抽象不应该依赖细节,细节应该依赖抽象,即针对接口编程,所有依赖关系都终止于抽象类或接口,不要对实现编程。
设计模式
创建型
工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)、单例(Singleton)、原型(Prototype)。
结构型
组合(Composite)、代理(Proxy)、外观(Facade)、适配器(Adapter)、装饰(Decorator)、桥接(Bridge)、享元(Flyweight)。
行为型
策略(Strategy)、模板方法(Temple
Method)、观察者(Observer)、状态(State)、备忘录(Memento)、迭代器(Iterator)、命令(Command)、责任链(Chain
Of Responsibility)、中介者(Mediator)、访问者(Visitor)、解释器(Interpreter)。
分布式设计原则
高可用
降级、限流(漏桶-平滑、令牌桶-可突发、环形队列+滑动窗口)、切流、熔断、回流、可回流、超时、隔离(线程、读写、资源、热点、爬虫)、负载均衡。
高并发
无状态、拆分、服务化、队列、数据异构(异构-原子化-聚合-缓存)、缓存、并发化(Future、Callback、Completable Future)、池化。
业务设计
防重、幂等、规则引擎、状态机、审计、审批。
分布式理论
CAP:一致性、可用性、分区容错性(三选二);
BASE:基本可用、软状态、最终一致性;
ACID:原子性、一致性、隔离性、持久性。
一致性原则
XA协议:准备 - 提交(具有阻塞、协调者单点、脑裂等缺点);
XA三段协议:询问 - 准备 - 提交;
TCC:try - confirm / try - cancel 锁定 - 确认/释放;
最终一致性:查询、补偿、定期校对、可靠消息、缓存一致性。
超时处理
原则:谁超时谁处理,即接口调用超时,查询+补偿;接口调用成功后,接口内部服务超时须自己补偿。
两状态同步接口(OK/ERR):接口调用超时,调用方查询+补偿;接口内部服务超时,内部快速失败+冲正;
三状态同步接口(OK/ING/ERR):接口调用超时,调用方查询+补偿;接口内部服务超时,返回处理中,内部查询+补偿到成功,调用方轮询;
异步接口:接口调用超时,调用方查询+补偿;接口内部服务超时,内部查询+补偿到成功,回调通知;接口回调通知超时,指数补偿回调;
消息队列:生产者发送超时,持久化可靠发送+幂等消费;消费者消费超时,消息处理完偏移量增加。
缓存
缓存分片:客户端分片(redic)、代理分片、集群分片(一致性Hash);
缓存穿透:缓存空值、有效Key判断;
缓存并发:分布式锁、本地锁、软过期(业务过期);
缓存雪崩:错峰失效。
三、画好架构图
4+1视图
场景视图:参与者与功能用例关系,用例图表示;
逻辑视图:功能拆解后的组件边界及关系,组件图和类图表示;
物理视图:软件与硬件映射关系,部署图表示;
处理流程图:各组件流程与数据交互,时序图和流程图表示;
开发视图:模块划分及包组成,包图表示。
C4视图
语境图:梳理待建设系统用户和高层次依赖,在中间画出自己的系统,周围是用户与其它交互系统。
容器图:展开语境图待建设系统,用框图表示,可包含名称、技术选择、职责、框图间交互,明确外部系统边界。
组件图:展开某个容器,描述其内部模块组件组成、关系。
类图:同UML静态图,此处不再展开。
软件设计包括如何做系统接口设计软件的两个阶段如何做系统接口设计软件:
1、对软件如何做系统接口设计软件的全局观点。系统通过逐步求精使得设计陈述逐渐接近源代码。这里有两个基本步骤如何做系统接口设计软件,第一步是初步设计,关注于如何将需求转换成数据和软件框架。
2、详细设计,关注于将框架逐步求精细化为具体的数据结构和软件的算法表达。发生中的设计行为、数据、算法和程序设计都需要由现代程序所需的界面设计这一清晰的行为来结合起来。界面设计建立程序布局和人机交互机制。贯穿设计过程的质量由一系列的正式技术评定或设计排演来评价。
软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。
软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。
扩展资料如何做系统接口设计软件:
设计要素:
软件设计包括软件的结构设计,数据设计,接口设计和过程设计。
1、结构设计:定义软件系统各主要部件之间的关系。
2、数据设计:将模型转换成数据结构的定义。
3、接口设计:软件内部,软件和操作系统间以及软件和人之间如何通信。
4、过程设计:系统结构部件转换成软件的过程描述。
参考资料来源:百度百科-软件设计
昨天写到系统接口设计最重要的原则是:
很开心的是大家选了黎叔和Richardson的方案,因为这个方案是最 简单直观 的,并且满足了数据在两个系统的一致性。
还是举昨天的例子,数据在客户系统是这样的:
到我们系统也会生成一样的数据:
我们系统为了生成这条数据,还需要生成一些基础数据:
这个方案的唯一问题是一个正常的SR(一装一卸)被分成了两个SR,一个是提货SR,一个是卸货SR,和我们之前对SR的认知十分不同,除了心里有些小担心之外,暂时也想不出这样会有什么问题。
抛开这个问题,我想用三个词来评价这个解决方案:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~