【仿真建模-anylogic】FlowchartPort原理解析

2024-06-14 14:44

本文主要是介绍【仿真建模-anylogic】FlowchartPort原理解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Author:赵志乾
Date:2024-06-14
Declaration:All Right Reserved!!!

1. 类图

2. 原理解析

2.1 核心函数

        FlowchartPort继承Port类,并定义了一系列抽象函数;核心函数如下:

函数功能
FlowchartPort(FlowchartBlock owner)构造函数,入参指定Port所属的FlowchartBlock;FlowchartBlock继承自Agent;
abstract long count()获取到目前为止通过该端口的Agent个数;

abstrack void markError()

abstract boolean isError()

标注端口发生错误

判定端口是否发生错误

boolean isReadyToExit()

boolean isCannotAccept()

用于输出端口判定是否有Agent准备离开

用于输入端口判定此刻是否不能接收Agent

FlowchartBlock getFlowchartBlockRepresentative()对于owner为内部block时,获取owner的owner;属于内部函数,不建议用户调用;
2.2 代码解析
//******************核心字段************************
// 非内部block为null,内部block为owner的owner;
private FlowchartBlock representativeOwner;//*******************构造函数************************
public FlowchartPort(FlowchartBlock owner) {super(owner);
}//*******************抽象方法,需由子类实现**************
public abstract long count();
public abstract void markError();
public abstract boolean isError();//*******************默认实现,子类一般会覆写************
public boolean isReadyToExit() {return false;
}
public boolean isCannotAccept() {return false;
}//*******************获取owner************************
//获取端口直接归属的owner
public FlowchartBlock getAgent() {return (FlowchartBlock)super.getAgent();
}
//对于直接归属的owner为内部block时,获取owner的ownerBlock
public FlowchartBlock getFlowchartBlockRepresentative() {if (this.representativeOwner == null) {this.representativeOwner = this.getAgent().getFlowchartBlockRepresentative();if (this.representativeOwner == null) {this.markError();this.getAgent().error("Internal error: this block has been set as 'internal block' but it has no 'not internal' owner");}}return this.representativeOwner;}

3. 应用场景

       FlowchartPort是流图组件端口的基类,一般不会直接使用;如果需要自行封装组件库时会用到;

这篇关于【仿真建模-anylogic】FlowchartPort原理解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060692

相关文章

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3