03 周作业——设计模式
请在草稿纸上手写一个单例模式的实现代码。
保证系统中只产生 Singleton 的单一实例。实现方式分为
懒汉式
和饿汉式
,需要考虑线程安全,可以使用语言的特性来实现。
以下以swift
来完成,实在是非常简单,构造函数私有化,类的属性自动实现懒初始化(swift 语言特性)。

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

C#版的设计和实现如下:

Component 抽象类
复制代码
Container 类: 可以拆分成较多的容器类组建,比如 Window, Frame, Panel 等,不一一写,统称 Container
复制代码
FormComponent 类:可以拆分成很多的单一组件,比如 Button, Label, TextBox, CheckBox 等,不一一写,统称 FormComponent
复制代码
输出结果

版权声明: 本文为 InfoQ 作者【dao】的原创文章。
原文链接:【http://xie.infoq.cn/article/ec4e13751aef06b2dbf9fd85b】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论