命题作业—第三周

用户头像
于江水
关注
发布于: 2020 年 06 月 23 日

作业一:

手写一个 Singleton 然后拍照提交。这是用类似 TS 的语法编写的



作业二:

使用组合设计模式编写程序,输出一个树状结构,并且在执行的时候会打印出来对应的组件名。使用 JS 实现,可以直接运行。

class Button {
constructor(name) {
this.name = name;
}
print() {
console.log(`print Button(${this.name})`);
}
}
class Picture {
constructor(name) {
this.name = name;
}
print() {
console.log(`print Picture(${this.name})`);
}
}
class Frame {
constructor(name) {
this.name = name;
this.children = [];
}
add(child) {
this.children.push(child);
}
print() {
console.log(`print Frame(${this.name})`);
this.children.forEach(child => {
child.print();
});
}
}
class Label {
constructor(name) {
this.name = name;
}
print() {
console.log(`print Label(${this.name})`);
}
}
class TextBox {
constructor(name) {
this.name = name;
}
print() {
console.log(`print TextBox(${this.name})`);
}
}
class PasswordBox {
constructor(name) {
this.name = name;
}
print() {
console.log(`print PasswordBox(${this.name})`);
}
}
class CheckBox {
constructor(name) {
this.name = name;
}
print() {
console.log(`print CheckBox(${this.name})`);
}
}
class LinkLabel {
constructor(name) {
this.name = name;
}
print() {
console.log(`print LinkLabel(${this.name})`);
}
}
class WinForm {
constructor(name) {
this.name = name;
this.children = [];
}
add(child) {
this.children.push(child);
}
print() {
console.log(`print WinForm(${this.name})`);
this.children.forEach(child => {
child.print();
});
}
}
class Client {
constructor() {
this.winForm = new WinForm('WINDOW 窗口');
this.winForm.add(new Picture('LOGO 图片'));
this.winForm.add(new Button('登陆'));
this.winForm.add(new Button('注册'));
const frame = new Frame('FRAME1');
frame.add(new Label('用户名'));
frame.add(new TextBox('文本框'));
frame.add(new Label('密码'));
frame.add(new PasswordBox('密码框'));
frame.add(new CheckBox('复选框'));
frame.add(new TextBox('记住用户名'));
frame.add(new LinkLabel('忘记密码'));
this.winForm.add(frame);
}
print() {
this.winForm.print();
}
}
const client = new Client();
client.print();



发布于: 2020 年 06 月 23 日 阅读数: 30
用户头像

于江水

关注

还未添加个人签名 2018.07.08 加入

还未添加个人简介

评论

发布
暂无评论
命题作业—第三周