写点什么

第 3 周

用户头像
paul
关注
发布于: 2020 年 10 月 04 日

内容总结



作业(2选1)

  1. 请在草稿纸上手写一个单例模式的实现代码。 (拍照提交作业)

  2. 请用组合设计模式编写程 序,打印输出图1的窗口, 窗口组件的树结构如图2 所示。

打印输出示例参考图3。

选择第2题

类图



实现伪代码
// 注意:这是伪代码 不能直接运行
class Component()
{
public abstract Function draw();
}
class Picture implements Component()
{
public Function draw() {
print("LOGO图片");
}
}
class Button implements Component()
{
private text;
public Function draw() {
print(this.text + "按扭");
}
public setText(value) {
text = value;
}
}
class Label implements Component()
{
private text;
public Function draw() {
print(this.text + "Label");
}
public setText(value) {
text = value;
}
}
class TextBox implements Component()
{
public Function draw() {
print("文本输入框");
}
}
class PasswordBox implements Component()
{
public Function draw() {
print("密码输入框");
}
}
class CheckBox implements Component()
{
public Function draw() {
print("复选输入框");
}
}
class LinkDecorator implements Component()
{
private Component element;
public Function draw() {
print("带Link的")
element.draw();
}
public setElement(Component element) {
this.element = element;
}
}
class Window implements Component()
{
private Array elements <Component>;
public Function draw() {
for (Component e: elements) {
e.draw();
}
}
public Function addElement(Component element) {
elements.append(element);
}
}
class Frame extends Window()
{
public Function draw() {
print("Frame 开始");
upper.draw();
print("Frame 结束");
}
}
window = new Window();
picture = new Picture();
window.addElement(picture)
frame = new Frame();
window.addElement(frame);
userLabel = new Label();
userLabel.setText("用户名");
frame.addElement(userLabel);
frame.addElement(new TextBox());
pwdLabel = new Label();
pwdLabel.setText("密码")
frame.addElement(pwdLabel);
frame.addElement(new PasswordBox());
frame.addElement(new CheckBox());
rememberLabel = new Label();
rememberLabel.setText("记住用户名");
frame.addElement(rememberLabel);
forgetLabel = new Label();
forgetLabel.setText("记住用户名");
forgetLink = new LinkDecorator();
forgetLink.setElement(forgetLabel);
frame.addElement(forgetLink);
loginButton = new Button();
loginButton.setText("登录");
window.addElement(loginButton);
regButton = new Button();
regButton.setText("登录");
window.addElement(regButton)
window.draw();



用户头像

paul

关注

还未添加个人签名 2018.08.22 加入

还未添加个人简介

评论

发布
暂无评论
第3周