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

PHP OOP 基础与 WSaiOS-ICAI 对象工程实践

附录A

PHP OOP 基础与 WSaiOS-ICAI 对象工程实践


A.1 PHP OOP 在 WSaiOS-ICAI 中的定位

WSaiOS-ICAI 使用 PHP OOP,不是为了单纯完成程序开发。

而是为了:

使用面向对象软件工程方法,将人工个体智能理论模型转换为可运行的软件对象系统。


传统 PHP 开发:

关注:

页面
数据库
业务流程

WSaiOS-ICAI 工程:

关注:

智能元素
对象关系
能力组合
状态管理
行为执行

因此:

PHP OOP 是:

人工个体智能模型的工程表达方式。


A.2 面向对象三大核心思想

PHP OOP:

包含:

1. 封装

2. 继承

3. 多态


在 WSaiOS-ICAI:

对应:


封装

智能能力独立存在。

例如:

学习能力:

Learning Object

不需要暴露内部过程。


继承

建立统一智能对象基础。

例如:

AIObject
LearningObject
KnowledgeLearningObject

多态

不同能力对象:

使用统一接口。

例如:

solve()

不同对象:

实现不同解决方式。


A.3 类 Class 与人工个体元素

在 OOP:

类:

是对象模板。


例如:

人的记忆能力。


理论:

记忆元素

工程:

class Memory
{
}

实例:

$memory =
new Memory();

形成:

理论元素
对象实例

A.4 WSaiOS-ICAI 基础智能对象

建立:

所有智能对象父类。


文件:

core/AIObject.php

代码:

<?php
abstract class AIObject
{
protected $id;
protected $state;
public function getId()
{
return $this->id;
}
public function getState()
{
return $this->state;
}
abstract public function process($input);
}

说明:

所有智能模块:

必须具有:

  • 身份;
  • 状态;
  • 处理能力。

A.5 智能对象继承模型

结构:

AIObject
|
|
├── PerceptionObject
├── CognitionObject
├── KnowledgeObject
├── CapabilityObject
├── LearningObject
├── MemoryObject
└── ExperienceObject

代码:

class MemoryObject
extends AIObject
{
public function process($input)
{
return $input;
}
}

A.6 对象组合思想

WSaiOS-ICAI:

不采用:

所有能力继承一个巨大对象。


原因:

人工个体:

是能力组合。


例如:

一个工程人工个体:

IndividualAI
+
Knowledge
+
Memory
+
Capability
+
Learning

PHP:

class IndividualAI
{
private $knowledge;
private $memory;
private $capability;
}

这叫:

组合式智能结构。


A.7 IndividualAI 根对象实现

文件:

core/IndividualAI.php

代码:

<?php
class IndividualAI
{
protected $objects=[];
public function add(
$name,
$object
)
{
$this->objects[$name]
=
$object;
}
public function get(
$name
)
{
return
$this->objects[$name];
}
}

作用:

管理:

人工个体内部智能对象。


A.8 接口 Interface 设计

接口:

规定能力标准。


例如:

所有学习系统:

必须具备:

学习行为。


接口:

interface LearningInterface
{
public function learn($target);
}

实现:

class LearningEngine
implements LearningInterface
{
public function learn($target)
{
return $target;
}
}

优势:

未来可以替换:

不同学习机制。


A.9 抽象类设计

抽象类:

提供共同结构。


例如:

所有能力:

都有:

等级。


代码:

abstract class Capability
{
protected $level=1;
public function getLevel()
{
return $this->level;
}
abstract public function apply($task);
}

具体能力:

class CodingCapability
extends Capability
{
public function apply($task)
{
}
}

A.10 方法 Method 与智能行为

在 WSaiOS-ICAI:

方法:

代表能力动作。


例如:

知识:

方法:

search()
update()
apply()

学习:

方法:

discover()
acquire()
learn()

行为:

方法:

execute()
feedback()

对应:

人的行为:

软件方法。


A.11 智能对象生命周期

对象生命周期:


创建

new Object();

初始化

init();

工作

process();

更新

update();

保存

save();

例如:

知识对象:

创建
学习获取
理解
保存
调用
更新

A.12 数据访问对象 DAO

为了分离:

对象逻辑。

数据库操作。


设计:

models/
KnowledgeDAO.php
MemoryDAO.php
ExperienceDAO.php

例如:

class KnowledgeDAO
{
public function save(
$knowledge
)
{
}
public function find(
$keyword
)
{
}
}

结构:

Knowledge Object
Knowledge DAO
MySQL

A.13 Service 服务层设计

复杂智能流程:

不能全部写 Controller。


增加:

Service层。


结构:

app/
services/
LearningService.php
ReasoningService.php
CapabilityService.php

例如:

学习服务:

class LearningService
{
public function execute($goal)
{
//学习流程
}
}

A.14 完整对象调用流程

一次智能行为:

User Input
Controller
IndividualAI
Perception Object
Cognition Object
Capability Object
Behavior Object
Experience Object
Memory Object

A.15 WSaiOS-ICAI 对象工程原则

原则1:

一个智能元素对应一个对象。


原则2:

对象拥有自己的状态。


原则3:

对象通过方法产生行为。


原则4:

对象通过组合形成个体能力。


原则5:

对象可以升级和进化。


A.16 本附录总结

PHP OOP 在 WSaiOS-ICAI 中的意义:

不是程序技巧。

而是一种:

将人工个体智能结构进行软件对象化建模的方法。

最终映射:

智能元素
对象
实例
运行能力

下一部分:

附录B

MVC框架实现与 WSaiOS-ICAI 智能流程控制

重点:

  • Controller 如何成为智能调度器
  • Model 如何管理知识、记忆、能力
  • View 如何表达认知结果
  • MVC 与人工个体思维流程对应
  • 手写 PHP MVC 核心框架实现

Leave a Reply

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