在这个实例中,我们将使用PHP和组合设计模式来创建一个简单的用户管理系统。组合设计模式允许我们将对象组合成树形结构来表示部分整体的层次结构,这样就可以对树中的对象进行统一操作。
1. 模块划分
我们需要定义几个模块:

| 模块名称 | 功能描述 |
|---|---|
| User | 用户信息存储 |
| UserManager | 用户管理操作 |
| Role | 角色信息存储 |
| RoleManager | 角色管理操作 |
2. 实现步骤
2.1 定义User类
```php
class User {
private $id;
private $name;
private $email;
private $role;
public function __construct($id, $name, $email, $role) {
$this->id = $id;
$this->name = $name;
$this->email = $email;
$this->role = $role;
}
// ... 其他属性和方法 ...
}
```
2.2 定义Role类
```php
class Role {
private $id;
private $name;
public function __construct($id, $name) {
$this->id = $id;
$this->name = $name;
}
// ... 其他属性和方法 ...
}
```
2.3 定义UserManager类
```php
class UserManager {
private $users = [];
public function addUser($user) {
$this->users[] = $user;
}
public function deleteUser($id) {
foreach ($this->users as $key => $user) {
if ($user->getId() == $id) {
unset($this->users[$key]);
}
}
}
// ... 其他方法 ...
}
```
2.4 定义RoleManager类
```php
class RoleManager {
private $roles = [];
public function addRole($role) {
$this->roles[] = $role;
}
public function deleteRole($id) {
foreach ($this->roles as $key => $role) {
if ($role->getId() == $id) {
unset($this->roles[$key]);
}
}
}
// ... 其他方法 ...
}
```
3. 测试
```php
$userManager = new UserManager();
$roleManager = new RoleManager();
// 添加角色
$adminRole = new Role(1, 'admin');
$roleManager->addRole($adminRole);
// 添加用户
$user = new User(1, '张三', 'zhangsan@example.com', $adminRole);
$userManager->addUser($user);
// 删除用户
$userManager->deleteUser(1);
// 输出结果
echo "









