作业
发布于: 2020 年 06 月 24 日
1.单例实现
2.请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
1.show.php
<?phpinclude 'WinFrom.php';$win = new WinForm('WinForm', 'WINDOW窗口');$win->add(new Picture('Picture', 'LOGO图片'));$win->add(new Button('Button', '登录'));$win->add(new Button('Button', '注册'));$frame = new Frame('Frame', 'FRAME1');$frame->add(new Label('Label', '用户名'));$frame->add(new TextBox('TextBox', '文本框'));$frame->add(new Label('Label', '密码'));$frame->add(new PasswordBox('Password', '密码框'));$frame->add(new CheckBox('CheckBox', '复选框'));$frame->add(new TextBox('TextBox', '记住用户名'));$frame->add(new LinkLabel('LinkLabel', '忘记密码'));$win->add($frame);$win->display();
2.WinForm.php
<?phpinclude 'Container.php';class WinForm extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}class Picture extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}class Button extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}class Frame extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}class Label extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}class TextBox extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}class PasswordBox extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}class CheckBox extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}class LinkLabel extends Container{ public function __construct($type, $name) { parent::__construct($type, $name); }}
3.Component.php
<?phpabstract class Component{ protected $type; protected $name; function __construct($type, $name) { $this->type = $type; $this->name = $name; } abstract public function add(Component $component); public function display() { printf("print $this->type($this->name)\n"); }}
4.Container.php
<?phpinclude 'Component.php';abstract class Container extends Component{ protected $lists = []; public function __construct($type, $name) { parent::__construct($type, $name); } public function add(Component $component) { $this->lists[] = $component; } public function display() { parent::display(); foreach ($this->lists as $name => $field) { $field->display(); } }}
划线
评论
复制
发布于: 2020 年 06 月 24 日 阅读数: 26
chenzt
关注
还未添加个人签名 2018.05.15 加入
还未添加个人简介
评论