组合模式
发布于: 2020 年 06 月 24 日
使用组合模式实现一个简单窗口的组件打印功能
采用了lambda的方式实现不同的组件,减少很多无意义类的创建。
public interface WindowComponentPrinter { void print();}public class WindowComponentNonLeafDemo implements WindowComponentPrinter { private List<WindowComponentPrinter> components; public void addComponent(WindowComponentPrinter windowComponentPrinter) { if (Objects.isNull(components)) { components = new ArrayList<>(); } components.add(windowComponentPrinter); } @Override public void print() { components.forEach(WindowComponentPrinter::print); } public static void main(String[] args) { WindowComponentNonLeafDemo frame = new WindowComponentNonLeafDemo(); frame.addComponent(() -> System.out.println("print Frame(FRAME1)")); frame.addComponent(() -> System.out.println("print Lable(用户名)")); frame.addComponent(() -> System.out.println("print TextBox(文本框)")); frame.addComponent(() -> System.out.println("print Lable(密码)")); frame.addComponent(() -> System.out.println("print PasswordBox(密码框)")); frame.addComponent(() -> System.out.println("print CheckBox(复选框)")); frame.addComponent(() -> System.out.println("print TextBox(记住用户名)")); frame.addComponent(() -> System.out.println("print LinkLable(忘记密码)")); WindowComponentNonLeafDemo mainWindow = new WindowComponentNonLeafDemo(); mainWindow.addComponent(() -> System.out.println("print WinForm(WINDOWS窗口)")); mainWindow.addComponent(() -> System.out.println("print Picture(LOGO图片)")); mainWindow.addComponent(() -> System.out.println("print Button(登陆)")); mainWindow.addComponent(() -> System.out.println("print Button(注册)")); mainWindow.addComponent(frame::print); mainWindow.print(); }}
手写实现一个单例模式
这是一个基于饿汉的单例模式。在类的初始化时候直接生成对应的单例对象。
划线
评论
复制
发布于: 2020 年 06 月 24 日阅读数: 45
Jeff
关注
还未添加个人签名 2017.11.30 加入
还未添加个人简介
评论