update 设计模式.md

This commit is contained in:
shzhxh 2019-08-14 16:53:53 +08:00
parent ecb6518683
commit 2641b52ed1
3 changed files with 63 additions and 1 deletions

View File

@ -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

View File

@ -0,0 +1 @@
一个在命令行里显示系统信息的脚本

View File

@ -1 +1,18 @@
列出硬件信息。
```
sudo lshw [options] # 列出硬件信息。
```
#### 选项
```
-html # 将设备树输出为HTML格式
-xml # 将设备树输出为XML格式
-json # 将设备树输出为JSON格式
-short # 显示硬件路径
-businfo # 显示总线信息
-class <class> # 仅显示给定类型的硬件class的信息。
# 注:可通过-short或-businfo选项获得可选的class。
-sanitize # 从输出里删除敏感信息。如IP地址、序列号等。
```