首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第156章 ICAI领域对象模型

第156章 ICAI领域对象模型

156.1 提出背景

第155章建立了ICAI面向对象工程的基本原则:

TheoryObject→ObjectModel→PHPClass→ProgramInstance→RuntimeObjectTheoryObject \rightarrow ObjectModel \rightarrow PHPClass \rightarrow ProgramInstance \rightarrow RuntimeObject

但是,仅仅把理论概念转换成PHP Class,还不能形成完整的ICAI工程。

原因在于,ICAI包含大量不同性质的对象:

IndividualIndividual CognitionCognition BehaviorBehavior MemoryMemory MaintenanceMaintenance

这些对象虽然共同属于一个机器个体,但它们承担的职责并不相同。

如果把所有对象、计算和运行逻辑都放进一个巨大对象中,就会形成:

MachineIndividual→GodObjectMachineIndividual\rightarrow GodObject

这种结构会使系统难以维护、扩展和验证。

因此,ICAI需要建立领域对象模型(Domain Object Model),按照理论领域和工程职责,将机器个体划分为若干具有明确边界的领域对象。

本章建立五类核心领域对象:

DomainObject=IndividualObject+CognitiveObject+BehaviorObject+MemoryObject+MaintenanceObject\boxed{ DomainObject= IndividualObject+ CognitiveObject+ BehaviorObject+ MemoryObject+ MaintenanceObject }

它们共同组成ICAI机器个体的核心对象体系。


156.2 Domain Object定义

156.2.1 领域对象定义

**领域对象(Domain Object)**是指在ICAI特定理论领域中具有明确身份、结构、状态、关系和职责,并能够在程序中作为独立对象进行保存、计算、关联和运行的对象。

形式化表示:

DomainObject=Identity+Structure+State+Relation+Responsibility\boxed{ DomainObject= Identity+ Structure+ State+ Relation+ Responsibility }

其中:

  • IdentityIdentity:对象身份;
  • StructureStructure:对象内部结构;
  • StateState:对象当前状态;
  • RelationRelation:对象与其他对象之间的关系;
  • ResponsibilityResponsibility:对象在系统中的职责。

156.3 Domain Object与普通程序对象

普通程序对象可以只是为了实现程序功能而建立:

class User
{
    protected $name;
}

而ICAI领域对象必须对应理论中的明确概念。

例如:

CognitiveObjectCognitiveObject

不是为了方便编程而随意命名的Class,而是对应ICA I理论中的:

ObjectObject

因此:

TheoreticalConcept→DomainObjectTheoreticalConcept \rightarrow DomainObject

这是ICAI领域对象模型的基本原则。


156.4 Domain Object的核心特征

一个完整的ICAI领域对象至少具有以下特征。

1. 身份

IDID

2. 类型

TypeType

3. 结构

StructureStructure

4. 状态

StateState

5. 关系

RelationRelation

6. 生命周期

LifecycleLifecycle

7. 领域职责

ResponsibilityResponsibility

因此:

DomainObject=ID+Type+Structure+State+Relation+Lifecycle+Responsibility\boxed{ DomainObject= ID+Type+Structure+State+Relation+Lifecycle+Responsibility }


156.5 Domain Object不是数据库记录

必须明确:

DomainObject≠DatabaseRecordDomainObject\neq DatabaseRecord

数据库记录主要解决数据持久化:

DatabaseRecord→StorageDatabaseRecord\rightarrow Storage

领域对象解决的是:

DomainObject→DomainStructureDomainObject\rightarrow DomainStructure

二者通过Repository连接:

DomainObject↔Repository↔MySQL\boxed{ DomainObject \leftrightarrow Repository \leftrightarrow MySQL }

例如:

CognitiveObject↔CognitiveObjectRepository↔cognitive_objectsCognitiveObject \leftrightarrow CognitiveObjectRepository \leftrightarrow cognitive\_objects

因此,数据库不是ICAI领域对象本身。


156.6 Domain Object不是Engine

同样:

DomainObject≠EngineDomainObject\neq Engine

领域对象负责表达领域结构。

Engine负责执行领域计算。

例如:

CognitiveObject→ObjectEngineCognitiveObject \rightarrow ObjectEngine

其中:

CognitiveObjectCognitiveObject

描述对象。

而:

ObjectEngineObjectEngine

执行对象识别、对象匹配、对象状态计算等操作。

因此:

Object=Structure\boxed{ Object = Structure } Engine=Computation\boxed{ Engine = Computation }


156.7 ICAI领域对象体系

ICAI核心领域对象可以划分为五个大的对象域:

ICAI Domain Object
│
├── Individual Domain
│   └── Individual Object
│
├── Cognitive Domain
│   └── Cognitive Object
│
├── Behavior Domain
│   └── Behavior Object
│
├── Memory Domain
│   └── Memory Object
│
└── Maintenance Domain
    └── Maintenance Object

五类对象不是彼此独立的孤立模块。

它们之间形成:

Individual→Cognition→Behavior→Memory→Maintenance→Individual\boxed{ Individual \rightarrow Cognition \rightarrow Behavior \rightarrow Memory \rightarrow Maintenance \rightarrow Individual }


156.8 第一类:Individual Object

156.8.1 Individual Object定义

**个体对象(Individual Object)**是ICAI领域中代表一个具体机器个体的核心领域对象。

它回答:

这个机器个体是谁?属于什么类型?具有哪些内部结构?

形式化:

IndividualObject=Identity+Type+Structure+State+History\boxed{ IndividualObject= Identity+ Type+ Structure+ State+ History }


156.9 Individual Object结构

机器个体对象:

I={ID,Type,Boundary,Object,Attribute,State,Relation,Knowledge,Goal,Capability,Method,Behavior,Memory,Maintenance}I= \{ ID, Type, Boundary, Object, Attribute, State, Relation, Knowledge, Goal, Capability, Method, Behavior, Memory, Maintenance \}

工程实现:

class IndividualObject
{
    protected $id;
    protected $type;
    protected $boundary;
    protected $objects;
    protected $attributes;
    protected $states;
    protected $relations;
    protected $knowledge;
    protected $goals;
    protected $capabilities;
    protected $methods;
    protected $behaviors;
    protected $memory;
    protected $maintenance;
}

Individual Object是整个机器个体领域对象体系的根对象。


156.10 Individual Object的职责

Individual Object主要负责:

IdentityIdentity TypeType BoundaryBoundary StructureStructure LifecycleLifecycle

它不负责直接完成所有认知计算,也不负责直接执行所有行为。

因此:

IndividualObject≠CognitiveEngineIndividualObject\neq CognitiveEngine IndividualObject≠BehaviorEngineIndividualObject\neq BehaviorEngine

它主要负责组织机器个体内部领域对象。


156.11 Individual Object与其他对象的关系

建立:

IndividualObject→CognitiveObjectIndividualObject \rightarrow CognitiveObject IndividualObject→BehaviorObjectIndividualObject \rightarrow BehaviorObject IndividualObject→MemoryObjectIndividualObject \rightarrow MemoryObject IndividualObject→MaintenanceObjectIndividualObject \rightarrow MaintenanceObject

因此:

IndividualObject=RootDomainObject\boxed{ IndividualObject = RootDomainObject }


156.12 第二类:Cognitive Object

156.12.1 Cognitive Object定义

**认知对象(Cognitive Object)**是ICAI认知领域中用于表达对象、属性、状态、关系、场景、知识、需求、目标和能力等认知结构的领域对象。

其核心作用是把机器个体面对的信息转换为可计算的结构。

基本形式:

CognitiveObject=Object+Attribute+State+Relation+Scene+Knowledge\boxed{ CognitiveObject= Object+ Attribute+ State+ Relation+ Scene+ Knowledge }


156.13 Cognitive Object的组成

认知领域进一步细分:

Cognitive Object
│
├── Object
├── Attribute
├── State
├── Relation
├── Scene
├── Knowledge
├── Need
├── Goal
└── Capability

对应:

CognitiveObject
CognitiveAttribute
CognitiveState
CognitiveRelation
CognitiveScene
CognitiveKnowledge
CognitiveNeed
CognitiveGoal
CognitiveCapability

这些都是Cognitive Domain中的领域对象。


156.14 Cognitive Object结构

基础认知对象:

class CognitiveObject
{
    protected $id;
    protected $type;
    protected $attributes;
    protected $state;
    protected $relations;
    protected $history;
}

它能够连接:

Object→AttributeObject \rightarrow Attribute Object→StateObject \rightarrow State Object→RelationObject \rightarrow Relation

形成:

ObjectStructureObjectStructure


156.15 Cognitive Object与知识

认知对象并不是知识本身。

CognitiveObject≠KnowledgeCognitiveObject\neq Knowledge

对象提供认知基础:

Object→State→Relation→SceneObject \rightarrow State \rightarrow Relation \rightarrow Scene

然后:

Scene→KnowledgeScene \rightarrow Knowledge

因此:

CognitiveObject→KnowledgeObject\boxed{ CognitiveObject \rightarrow KnowledgeObject }


156.16 Cognitive Object与目标

认知结构进一步形成需求和目标:

StateDifference→NeedStateDifference \rightarrow Need Need→GoalNeed \rightarrow Goal

因此:

CognitiveObject→CognitiveNeed→CognitiveGoalCognitiveObject \rightarrow CognitiveNeed \rightarrow CognitiveGoal

目标不是认知对象的简单属性,而是独立领域对象。


156.17 Cognitive Object与能力

目标形成以后,需要判断机器个体是否具有相应能力:

Goal→CapabilityRequirementGoal \rightarrow CapabilityRequirement CapabilityRequirement→CapabilityCapabilityRequirement \rightarrow Capability

因此:

CognitiveGoal→CognitiveCapabilityCognitiveGoal \rightarrow CognitiveCapability

最终:

Cognition→Need→Goal→Capability\boxed{ Cognition \rightarrow Need \rightarrow Goal \rightarrow Capability }


156.18 第三类:Behavior Object

156.18.1 Behavior Object定义

**行为对象(Behavior Object)**是ICAI行为领域中用于表示方法、决策、行为、动作、结果和反馈等动态执行结构的领域对象。

基本结构:

BehaviorObject=Method+Decision+Behavior+Action+Result+Feedback\boxed{ BehaviorObject= Method+ Decision+ Behavior+ Action+ Result+ Feedback }


156.19 Behavior Object的组成

Behavior Object
│
├── Method
├── Decision
├── Behavior
├── Action
├── Result
└── Feedback

对应程序对象:

CognitiveMethod
CognitiveDecision
CognitiveBehavior
CognitiveAction
CognitiveResult
CognitiveFeedback

156.20 Method对象

方法回答:

采用什么执行结构?

Method=Goal+Object+Condition+Capability+Step+ResultMethod= Goal+ Object+ Condition+ Capability+ Step+ Result

因此:

Goal→MethodGoal \rightarrow Method

方法是行为形成之前的执行结构。


156.21 Decision对象

决策回答:

在当前条件下选择什么?

Decision=Goal+Capability+Method+Condition+Risk+Resource+RuleDecision= Goal+ Capability+ Method+ Condition+ Risk+ Resource+ Rule

因此:

Method→DecisionMethod \rightarrow Decision

决策对象不是行为对象的替代品。

Decision≠BehaviorDecision\neq Behavior


156.22 Behavior对象

行为表示执行过程:

Behavior=Subject+Object+Goal+Method+Decision+Condition+Action+ResultBehavior= Subject+ Object+ Goal+ Method+ Decision+ Condition+ Action+ Result

因此:

Decision→BehaviorDecision \rightarrow Behavior


156.23 Action对象

动作是行为中的具体执行单元:

Action⊂BehaviorAction\subset Behavior

因此:

Behavior={Action1,Action2,…,Actionn}Behavior = \{Action_1,Action_2,\ldots,Action_n\}

动作可以形成:

Action1→Action2→Action3Action_1 \rightarrow Action_2 \rightarrow Action_3


156.24 Result对象

结果负责记录执行以后产生的实际结果:

ExpectedResult↔ActualResult→Comparison→VerificationExpectedResult \leftrightarrow ActualResult \rightarrow Comparison \rightarrow Verification

因此:

Action→ResultAction \rightarrow Result

结果不是动作的属性,而是一个独立的领域对象。


156.25 Feedback对象

结果产生反馈:

Result→FeedbackResult \rightarrow Feedback

反馈继续进入:

MemoryMemory

并形成:

ExperienceExperience

因此:

Behavior→Action→Result→Feedback\boxed{ Behavior \rightarrow Action \rightarrow Result \rightarrow Feedback }


156.26 第四类:Memory Object

156.26.1 Memory Object定义

**记忆对象(Memory Object)**是ICAI记忆领域中用于保存机器个体过去信息、状态、事件、行为、结果、反馈、经验和历史变化的领域对象。

基本形式:

MemoryObject=Memory+Experience+History\boxed{ MemoryObject= Memory+ Experience+ History }


156.27 Memory Object的组成

Memory Object
│
├── Memory
├── Experience
├── History
├── HistoricalData
└── InitialMemory

对应:

MachineMemory
MachineExperience
MachineHistory
HistoricalData
InitialMemory

156.28 Memory对象

机器记忆:

Memory=Information+State+Behavior+Result+Feedback+ExperienceMemory= Information+ State+ Behavior+ Result+ Feedback+ Experience

工程:

class MachineMemory
{
    protected $id;
    protected $individualId;
    protected $type;
    protected $objectId;
    protected $content;
    protected $context;
    protected $state;
    protected $source;
    protected $weight;
    protected $status;
    protected $createdAt;
}

Memory对象回答:

机器个体过去保存了什么?


156.29 Experience对象

经验:

Experience=Situation+Goal+Method+Action+Result+Feedback+EvaluationExperience= Situation+ Goal+ Method+ Action+ Result+ Feedback+ Evaluation

工程:

class MachineExperience
{
    protected $id;
    protected $individualId;
    protected $situation;
    protected $goalId;
    protected $methodId;
    protected $actionId;
    protected $resultId;
    protected $feedbackId;
    protected $evaluation;
    protected $createdAt;
}

经验回答:

过去发生了什么,以及结果如何?


156.30 History对象

历史:

History={Event1,Event2,…,Eventn}History= \{Event_1,Event_2,\ldots,Event_n\}

历史强调时间和变化:

Statet→Eventt→Statet+1State_t \rightarrow Event_t \rightarrow State_{t+1}

因此:

History=Time+Event+ChangeHistory = Time+ Event+ Change


156.31 Memory、Experience与History的关系

三者不能混为一体:

Memory≠ExperienceMemory\neq Experience Experience≠HistoryExperience\neq History Memory≠HistoryMemory\neq History

它们分别承担不同职责:

Memory→保存过去信息Memory\rightarrow保存过去信息 Experience→保存经过评价的经历Experience\rightarrow保存经过评价的经历 History→保存时间变化过程History\rightarrow保存时间变化过程

三者共同形成:

Past→Memory→Experience→Knowledge\boxed{ Past \rightarrow Memory \rightarrow Experience \rightarrow Knowledge }

同时:

Past→HistoryPast \rightarrow History


156.32 第五类:Maintenance Object

156.32.1 Maintenance Object定义

**维护对象(Maintenance Object)**是ICAI维护领域中用于表达风险、自我保护、冲突、异常诊断、修复和验证等机器个体自我维护结构的领域对象。

基本结构:

MaintenanceObject=Risk+Protection+Conflict+Diagnosis+Repair\boxed{ MaintenanceObject= Risk+ Protection+ Conflict+ Diagnosis+ Repair }


156.33 Maintenance Object的组成

Maintenance Object
│
├── Risk
├── Protection
├── Conflict
├── Diagnosis
├── Repair
└── Verification

对应:

MachineRisk
MachineProtection
MachineConflict
MachineDiagnosis
MachineRepair
MachineVerification

156.34 Risk对象

风险对象:

Risk=Source+Target+Condition+Probability+Impact+Score+LevelRisk= Source+ Target+ Condition+ Probability+ Impact+ Score+ Level

工程:

class MachineRisk
{
    protected $id;
    protected $sourceObject;
    protected $targetObject;
    protected $condition;
    protected $probability;
    protected $impact;
    protected $score;
    protected $level;
    protected $state;
}

风险对象负责描述:

PotentialProblemPotentialProblem

而不是已经发生的问题。


156.35 Protection对象

保护对象:

Risk→ProtectionRisk \rightarrow Protection

保护:

Protection=Risk+Rule+Action+Condition+ResultProtection= Risk+ Rule+ Action+ Condition+ Result

其目的不是修复已经发生的损坏,而是降低或者避免风险。

因此:

Protection≠RepairProtection\neq Repair


156.36 Conflict对象

冲突对象用于表达机器个体内部或者外部存在的结构矛盾。

例如:

Goal1∧Goal2→GoalConflictGoal_1\land Goal_2 \rightarrow GoalConflict

或者:

Resource1∧Resource2→ResourceConflictResource_1 \land Resource_2 \rightarrow ResourceConflict

冲突对象:

Conflict=Source+Target+Type+Condition+ResolutionConflict= Source+ Target+ Type+ Condition+ Resolution

因此:

Conflict→Resolution→VerificationConflict \rightarrow Resolution \rightarrow Verification


156.37 Diagnosis对象

诊断对象负责分析异常:

Anomaly→DiagnosisAnomaly \rightarrow Diagnosis

诊断:

Diagnosis=Anomaly+Evidence+Condition+Cause+Impact+ConclusionDiagnosis= Anomaly+ Evidence+ Condition+ Cause+ Impact+ Conclusion

诊断结果可以是:

Cause=TrueCause=True

也可以:

Cause=UnknownCause=Unknown

未知诊断结果必须保留为未知,不能强制转换为确定原因。


156.38 Repair对象

修复对象负责执行恢复过程:

Diagnosis→RepairDiagnosis \rightarrow Repair

修复结构:

Repair=Target+Diagnosis+Method+Action+BeforeState+ExpectedState+AfterState+VerificationRepair= Target+ Diagnosis+ Method+ Action+ BeforeState+ ExpectedState+ AfterState+ Verification

因此:

Diagnosis≠RepairDiagnosis\neq Repair

诊断回答:

哪里出了问题?可能为什么?

修复回答:

如何恢复?


156.39 五类领域对象的统一关系

ICAI五大领域对象形成统一结构:

Individual Object
        │
        ├───────────────┐
        ↓               ↓
Cognitive Object   Maintenance Object
        │
        ↓
Goal / Capability
        │
        ↓
Behavior Object
        │
        ↓
Memory Object
        │
        └──────────────→ Individual Object

进一步:

Individual→Cognition→Behavior→Memory→Individual\boxed{ Individual \rightarrow Cognition \rightarrow Behavior \rightarrow Memory \rightarrow Individual }

维护结构贯穿整个过程:

\boxed{ Maintenance \rightarrow Cognition Maintenance→BehaviorMaintenance \rightarrow Behavior Maintenance→MemoryMaintenance \rightarrow Memory Maintenance \rightarrow Individual }


156.40 五大领域对象的职责边界

建立严格职责边界:

领域对象 核心职责
Individual Object 表示“是谁”以及整体个体结构
Cognitive Object 表示“认识了什么、知道什么、需要什么、目标是什么、具有什么能力”
Behavior Object 表示“采用什么方法、做什么决策、执行什么行为、产生什么结果”
Memory Object 表示“过去发生了什么、保存了什么、形成了什么经验”
Maintenance Object 表示“存在什么风险、冲突和异常,以及如何保护、诊断和修复”

因此:

Identity→Cognition→Behavior→Memory→Maintenance\boxed{ Identity \rightarrow Cognition \rightarrow Behavior \rightarrow Memory \rightarrow Maintenance }

不是简单的模块划分,而是按照领域职责建立对象边界。


156.41 Domain Object之间的关系

领域对象之间不是继承关系为主,而是**组合关系(Composition)和关联关系(Association)**为主。

例如:

IndividualObject→CognitiveObjectIndividualObject \rightarrow CognitiveObject CognitiveGoal→CognitiveCapabilityCognitiveGoal \rightarrow CognitiveCapability CognitiveCapability→CognitiveMethodCognitiveCapability \rightarrow CognitiveMethod CognitiveMethod→CognitiveDecisionCognitiveMethod \rightarrow CognitiveDecision CognitiveDecision→CognitiveBehaviorCognitiveDecision \rightarrow CognitiveBehavior CognitiveBehavior→CognitiveResultCognitiveBehavior \rightarrow CognitiveResult CognitiveResult→MachineMemoryCognitiveResult \rightarrow MachineMemory MachineRisk→MachineProtectionMachineRisk \rightarrow MachineProtection

因此:

ICAIObjectGraph=(V,E)\boxed{ ICAIObjectGraph=(V,E) }

其中:

  • VV:领域对象集合;
  • EE:领域对象之间的关系。

156.42 Domain Object与继承

ICAI可以使用继承表达具有稳定“is-a”关系的对象。

例如:

class MachineObject
{
    protected $id;
    protected $type;
}

可以存在:

class CognitiveObject extends MachineObject
{
}

但是不能为了追求继承而强行建立复杂继承树。

ICAI更重要的是:

CompositionComposition

而不是:

InheritanceInheritance

因为机器个体本质上是多个领域对象的组合:

MachineIndividual=Composition(Cognition,Behavior,Memory,Maintenance)MachineIndividual = Composition( Cognition, Behavior, Memory, Maintenance )


156.43 Domain Object与Service

领域对象定义:

StructureStructure

Service负责:

WorkflowWorkflow

例如:

MachineIndividualService→CognitiveService→BehaviorService→MemoryServiceMachineIndividualService \rightarrow CognitiveService \rightarrow BehaviorService \rightarrow MemoryService

因此:

Domain Object
       ↓
Service
       ↓
Engine
       ↓
Repository

形成:

DomainObject→Service→Engine→Repository\boxed{ DomainObject \rightarrow Service \rightarrow Engine \rightarrow Repository }


156.44 Domain Object与Engine

例如:

CognitiveGoal→GoalEngineCognitiveGoal \rightarrow GoalEngine CognitiveCapability→CapabilityEngineCognitiveCapability \rightarrow CapabilityEngine CognitiveMethod→MethodEngineCognitiveMethod \rightarrow MethodEngine CognitiveDecision→DecisionEngineCognitiveDecision \rightarrow DecisionEngine CognitiveBehavior→BehaviorEngineCognitiveBehavior \rightarrow BehaviorEngine MachineRisk→RiskEngineMachineRisk \rightarrow RiskEngine

领域对象保存结构,Engine完成计算。

因此:

DomainObject=What\boxed{ DomainObject=What } Engine=How\boxed{ Engine=How }


156.45 Domain Object与Repository

每个需要持久化的领域对象,可以通过Repository保存:

DomainObject→Repository→MySQLDomainObject \rightarrow Repository \rightarrow MySQL

例如:

IndividualObject→IndividualRepositoryIndividualObject \rightarrow IndividualRepository CognitiveObject→CognitiveObjectRepositoryCognitiveObject \rightarrow CognitiveObjectRepository CognitiveGoal→GoalRepositoryCognitiveGoal \rightarrow GoalRepository CognitiveBehavior→BehaviorRepositoryCognitiveBehavior \rightarrow BehaviorRepository MachineMemory→MemoryRepositoryMachineMemory \rightarrow MemoryRepository MachineRisk→RiskRepositoryMachineRisk \rightarrow RiskRepository


156.46 完整ICAI领域对象体系

最终建立:

ICAI Domain Object Model
│
├── Individual Object
│   ├── Individual
│   ├── Identity
│   ├── Type
│   └── Boundary
│
├── Cognitive Object
│   ├── Object
│   ├── Attribute
│   ├── State
│   ├── Relation
│   ├── Scene
│   ├── Knowledge
│   ├── Need
│   ├── Goal
│   └── Capability
│
├── Behavior Object
│   ├── Method
│   ├── Decision
│   ├── Behavior
│   ├── Action
│   ├── Result
│   └── Feedback
│
├── Memory Object
│   ├── Memory
│   ├── Experience
│   ├── History
│   ├── InitialMemory
│   └── HistoricalData
│
└── Maintenance Object
    ├── Risk
    ├── Protection
    ├── Conflict
    ├── Diagnosis
    ├── Repair
    └── Verification

156.47 完整领域对象运行链

机器个体运行时:

IndividualObject→CognitiveObject→BehaviorObject→MemoryObject→IndividualObject\boxed{ IndividualObject \rightarrow CognitiveObject \rightarrow BehaviorObject \rightarrow MemoryObject \rightarrow IndividualObject }

维护贯穿:

MaintenanceObject→CognitiveObject\boxed{ MaintenanceObject \rightarrow CognitiveObject } MaintenanceObject→BehaviorObject\boxed{ MaintenanceObject \rightarrow BehaviorObject } MaintenanceObject→MemoryObject\boxed{ MaintenanceObject \rightarrow MemoryObject }

形成完整运行:

Individual→Cognition→Goal→Capability→Method→Decision→Behavior→Action→Result→Feedback→Memory→Experience→Learning→Update→Individual\boxed{ Individual \rightarrow Cognition \rightarrow Goal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Result \rightarrow Feedback \rightarrow Memory \rightarrow Experience \rightarrow Learning \rightarrow Update \rightarrow Individual }

同时:

Risk→ProtectionRisk \rightarrow Protection Conflict→ResolutionConflict \rightarrow Resolution Anomaly→Diagnosis→Repair→VerificationAnomaly \rightarrow Diagnosis \rightarrow Repair \rightarrow Verification


156.48 Runtime中的领域对象

进入Runtime以后,五类领域对象并不是重新创建一套完全不同的对象,而是进入当前运行上下文。

RuntimeContext={Individual,Cognition,Behavior,Memory,Maintenance}RuntimeContext= \{ Individual, Cognition, Behavior, Memory, Maintenance \}

因此:

Runtime→DomainObjectsRuntime \rightarrow DomainObjects

Runtime主要负责协调当前对象状态:

RuntimeStatet→DomainObjectStatetRuntimeState_t \rightarrow DomainObjectState_t

当发生变化:

Event→StateUpdateEvent \rightarrow StateUpdate

形成:

DomainObjectt→DomainObjectt+1DomainObject_t \rightarrow DomainObject_{t+1}


156.49 一个完整对象运行实例

例如机器个体面对一个具体对象:

ObjectAObject_A

首先:

CognitiveObjectCognitiveObject

记录:

AttributeAttribute

和:

StateState

认知形成:

StateDifference→Need→GoalStateDifference \rightarrow Need \rightarrow Goal

能力匹配:

Goal→CapabilityGoal \rightarrow Capability

方法匹配:

Capability→MethodCapability \rightarrow Method

决策:

Method→DecisionMethod \rightarrow Decision

行为:

Decision→BehaviorDecision \rightarrow Behavior

动作:

Behavior→ActionBehavior \rightarrow Action

结果:

Action→ResultAction \rightarrow Result

反馈:

Result→FeedbackResult \rightarrow Feedback

记忆:

Feedback→MemoryFeedback \rightarrow Memory

经验:

Memory→ExperienceMemory \rightarrow Experience

如果发现异常:

Anomaly→Diagnosis→Repair→VerificationAnomaly \rightarrow Diagnosis \rightarrow Repair \rightarrow Verification

最终:

Update→IndividualUpdate \rightarrow Individual

这样,五类领域对象形成了一个真正连续的机器个体运行结构。


156.50 PHP工程对象体系

可以建立基础对象目录:

domain/
│
├── individual/
│   ├── IndividualObject.php
│   ├── IndividualIdentity.php
│   ├── IndividualType.php
│   └── IndividualBoundary.php
│
├── cognitive/
│   ├── CognitiveObject.php
│   ├── CognitiveAttribute.php
│   ├── CognitiveState.php
│   ├── CognitiveRelation.php
│   ├── CognitiveScene.php
│   ├── CognitiveKnowledge.php
│   ├── CognitiveNeed.php
│   ├── CognitiveGoal.php
│   └── CognitiveCapability.php
│
├── behavior/
│   ├── CognitiveMethod.php
│   ├── CognitiveDecision.php
│   ├── CognitiveBehavior.php
│   ├── CognitiveAction.php
│   ├── CognitiveResult.php
│   └── CognitiveFeedback.php
│
├── memory/
│   ├── MachineMemory.php
│   ├── MachineExperience.php
│   ├── MachineHistory.php
│   ├── InitialMemory.php
│   └── HistoricalData.php
│
└── maintenance/
    ├── MachineRisk.php
    ├── MachineProtection.php
    ├── MachineConflict.php
    ├── MachineDiagnosis.php
    ├── MachineRepair.php
    └── MachineVerification.php

156.51 Domain Object的工程分层

完整工程:

ICAI Theory
↓
Domain Model
↓
Domain Object
↓
Service
↓
Engine
↓
Repository
↓
MySQL
↓
Runtime

对应:

Theory→DomainObjectTheory \rightarrow DomainObject DomainObject→ServiceDomainObject \rightarrow Service Service→EngineService \rightarrow Engine Engine→RepositoryEngine \rightarrow Repository Repository→MySQLRepository \rightarrow MySQL


156.52 ICAI领域对象模型的核心原则

本章建立以下原则。

原则一:理论概念必须具有领域对象映射

TheoryConcept→DomainObjectTheoryConcept \rightarrow DomainObject

原则二:领域对象必须具有明确边界

ObjectA≠ObjectBObject_A\neq Object_B

原则三:领域对象必须具有明确职责

Object→ResponsibilityObject \rightarrow Responsibility

原则四:结构与计算分离

DomainObject≠EngineDomainObject\neq Engine

原则五:领域对象与持久化分离

DomainObject≠DatabaseRecordDomainObject\neq DatabaseRecord

原则六:复杂个体通过对象组合形成

Individual=Composition(DomainObjects)Individual = Composition(DomainObjects)

原则七:Runtime负责协调对象运行

DomainObjects→RuntimeDomainObjects \rightarrow Runtime


156.53 本章总结

第156章在第155章面向对象工程的基础上,进一步建立了ICAI的领域对象模型

首先定义:

DomainObject=Identity+Structure+State+Relation+Responsibility\boxed{ DomainObject= Identity+ Structure+ State+ Relation+ Responsibility }

领域对象不是普通程序对象,也不是数据库记录,更不是Engine。

其核心作用是把ICAI理论中的实体和结构转换为具有明确工程边界的程序领域对象。

ICAI建立五大核心领域对象:

IndividualObject\boxed{ IndividualObject }

表示:

是谁是谁 CognitiveObject\boxed{ CognitiveObject }

表示:

认识什么、知道什么、需要什么、目标是什么、具有什么能力认识什么、知道什么、需要什么、目标是什么、具有什么能力 BehaviorObject\boxed{ BehaviorObject }

表示:

如何执行、如何决策、如何行为、产生什么结果如何执行、如何决策、如何行为、产生什么结果 MemoryObject\boxed{ MemoryObject }

表示:

过去发生了什么、保存了什么、形成了什么经验过去发生了什么、保存了什么、形成了什么经验 MaintenanceObject\boxed{ MaintenanceObject }

表示:

存在什么风险、冲突和异常,以及如何保护、诊断和修复存在什么风险、冲突和异常,以及如何保护、诊断和修复

五类领域对象形成:

Individual→Cognition→Behavior→Memory→Individual\boxed{ Individual \rightarrow Cognition \rightarrow Behavior \rightarrow Memory \rightarrow Individual }

维护结构贯穿其中:

Risk→Protection\boxed{ Risk \rightarrow Protection } Conflict→Resolution\boxed{ Conflict \rightarrow Resolution } Anomaly→Diagnosis→Repair→Verification\boxed{ Anomaly \rightarrow Diagnosis \rightarrow Repair \rightarrow Verification }

最终,ICAI领域对象工程形成完整映射:

ICAI理论→领域模型→领域对象→PHPClass→Service→Engine→Repository→MySQL→Runtime\boxed{ ICAI理论 \rightarrow 领域模型 \rightarrow 领域对象 \rightarrow PHP Class \rightarrow Service \rightarrow Engine \rightarrow Repository \rightarrow MySQL \rightarrow Runtime }

因此,ICAI面向对象工程并不是简单地把每一个名词写成一个Class,而是按照理论概念、领域职责、对象边界、对象关系、计算职责、持久化职责和Runtime职责建立一套完整的领域对象体系。

其最终目标是:

一个理论概念→一个明确领域对象→一个明确程序结构→一个可运行的Runtime对象\boxed{ 一个理论概念 \rightarrow 一个明确领域对象 \rightarrow 一个明确程序结构 \rightarrow 一个可运行的Runtime对象 }

由此,ICAI理论正式从“理论对象体系”进入“领域对象工程体系”。

Leave a Reply

Your email address will not be published. Required fields are marked *