From 2641b52ed16caf70cebb1582b2c15c5b820ac6e4 Mon Sep 17 00:00:00 2001 From: shzhxh Date: Wed, 14 Aug 2019 16:53:53 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=AE=BE=E8=AE=A1=E6=A8=A1=E5=BC=8F.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Languages/DesignPatterns/设计模式.md | 44 ++++++++++++++++++++++++ Software/设备管理/inxi.md | 1 + Software/设备管理/lshw.md | 19 +++++++++- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 Software/设备管理/inxi.md diff --git a/Languages/DesignPatterns/设计模式.md b/Languages/DesignPatterns/设计模式.md index 0ce72e7..20edbee 100644 --- a/Languages/DesignPatterns/设计模式.md +++ b/Languages/DesignPatterns/设计模式.md @@ -19,6 +19,50 @@ 关注对象之间的交互问题。 +#### 创建模式 + +##### 工厂模式 + +定义:通过工厂类来实现对象的创建,它是为了隐藏创建的逻辑。 + +实现方法: + +- 设计一个接口类,它代表了要创建的对象。 +- 设计若干个类来实现这个接口。这些类代表了真正要创建的对象。 +- 实现一个工厂类,它的名字一般会叫做XXXFactory。工厂类的作用是依据传入的参数决定要创建哪个对象。 + +##### 单例模式 + +定义:确保一个类仅创建一个实例,它是为了避免从一个类创建多个实例。 + +意义:当请求创建一个新的对象时,构造函数就创建并返回一个对象。这样就有可能同一个类创建了多个对象,浪费了系统资源。 + +实现方法: + +- 把构造函数定义为private类型使其不可访问。 +- 实现一个getInstance方法用于创建对象。getInstance方法的核心逻辑是:判断对象是否存在,如存在则直接返回该对象,如不存在则创建该对象并返回该对象。该对象被定义为private static类型,这就保证了该对象仅能创建一次。 +- 为避免多个进程访问同一个对象,在getInstance内应使用synchronized关键字进行保护。 + +#### 结构型模式 + +##### 外观模式 + +##### 装饰器模式 + +#### 行为型模式 + +##### 观察者模式 + +定义:适用于对象之间存在一对多的依赖关系。当一个对象(subject)的状态发生改变时,所有依赖它的对象(观察者)都会接收到通知。 + +实现方法: + +- 要创建至少一个subject类,它就是观察者要观察的对象。它要提供添加、删除和提醒观察者这三个基本功能。还要实现一个函数,当状态改变时,调用提醒观察者的功能。提醒观察者的功能最终依赖于观察者的update函数。 +- 要创建一个所有观察者的抽象类,它一般会设计一个update函数,这样不同的观察者可以实现不同的操作。 +- 依据抽象类来实现具体的观察者,重点是实现观察者的update函数。 + +##### 模板模式 + #### 参考资料 1. [Design Patterns](https://www.tutorialspoint.com/design_pattern/design_pattern_overview.htm) : from website tutorialspoint.com diff --git a/Software/设备管理/inxi.md b/Software/设备管理/inxi.md new file mode 100644 index 0000000..5b2bbbf --- /dev/null +++ b/Software/设备管理/inxi.md @@ -0,0 +1 @@ +一个在命令行里显示系统信息的脚本 \ No newline at end of file diff --git a/Software/设备管理/lshw.md b/Software/设备管理/lshw.md index b5f8aa2..9b95c5e 100644 --- a/Software/设备管理/lshw.md +++ b/Software/设备管理/lshw.md @@ -1 +1,18 @@ -列出硬件信息。 \ No newline at end of file +``` +sudo lshw [options] # 列出硬件信息。 +``` + +#### 选项 + +``` +-html # 将设备树输出为HTML格式 +-xml # 将设备树输出为XML格式 +-json # 将设备树输出为JSON格式 + +-short # 显示硬件路径 +-businfo # 显示总线信息 +-class # 仅显示给定类型的硬件class的信息。 + # 注:可通过-short或-businfo选项获得可选的class。 +-sanitize # 从输出里删除敏感信息。如IP地址、序列号等。 +``` +