惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
P
Palo Alto Networks Blog
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Blog — PlanetScale
Blog — PlanetScale
S
Schneier on Security
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
雷峰网
雷峰网
T
Tenable Blog
人人都是产品经理
人人都是产品经理
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Scott Helme
Scott Helme
SecWiki News
SecWiki News
C
CERT Recently Published Vulnerability Notes
Recorded Future
Recorded Future
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
Cloudbric
Cloudbric
C
Check Point Blog
Engineering at Meta
Engineering at Meta
TaoSecurity Blog
TaoSecurity Blog
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
N
News and Events Feed by Topic
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
腾讯CDC
量子位
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
Kaspersky official blog
Vercel News
Vercel News
F
Full Disclosure
T
Troy Hunt's Blog
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs

博客园 - toon的泥瓦匠

在oj中Python的循环输入问题解决 LeetCode 2. Add Two Numbers swift LeetCode 01 Two Sum swift Protocol in Objective-C 阿里云Center OS 6.2 Nginx 配置 SSL/TLS HTTPS配置 阿里云Centos 6.3 64位 安全加固版 升级 Php 中的 Curl 7.19 到 7.35 iOS APNS配置(转) GCD dispath_async dispath_sync 各种混合使用测试情况 Mac OS X Redmine Backlogs安装日志 调试iOS 已经发布代码 Crash 文件分析出出错对应代码 iOS RSA公钥加密数据 服务端接受PHP私钥解密 反过服务端公钥加密数据 iOS端私钥解密数据 xcode调试找出错误行 iOS 日期格式串 setDateFormat 显示格式代码 iOS5 UI 设计新手段 Storyboard UIEdgeInsets Non-SQL 完成公司核名 varchar(max) text sqlserver 2005 数据库的正则替换 sqlserver 2005 full-text 的创建和使用 - toon的泥瓦匠
设计模式建议学习顺序
toon的泥瓦匠 · 2013-01-02 · via 博客园 - toon的泥瓦匠

设计模式建议学习顺序

学习顺序 设计模式 常用程度 适用层次 引入时机 结构复杂度 变化 实现 体现的原则
1 Factory Method 很常用 代码级 编码时 简单 子类的实例化 对象的创建工作延迟到子类 开闭原则
2 Singleton 很常用 代码级、应用级 设计时、编码时 简单 唯一实例 封装对象产生的个数  
3 Facade 很常用 应用级、构架级 设计时、编码时 简单 子系统的高层接口 封装子系统 开闭原则
4 Template Method 很常用 代码级 编码时、重构时 简单 算法子步骤的变化 封装算法结构 依赖倒置原则
5 Abstract Factory 比较常用 应用级 设计时 比较复杂 产品家族的扩展 封装产品族系列内容的创建 开闭原则
6 Composite 比较常用 代码级 编码时、重构时 比较复杂 复杂对象接口的统一 统一复杂对象的接口 里氏代换原则
7 Proxy 比较常用 应用级、构架级 设计时、编码时 简单 对象访问的变化 封装对象的访问过程 里氏代换原则
8 Command 比较常用 应用级 设计时、编码时 比较简单 请求的变化 封装行为对对象 开闭原则
9 Observer 比较常用 应用级、构架级 设计时、编码时 比较简单 通讯对象的变化 封装对象通知 开闭原则
10 Strategy 比较常用 应用级 设计时 一般 算法的变化 封装算法 里氏代换原则
11 Builder 一般 代码级 编码时 一般 对象组建的变化 封装对象的组建过程 开闭原则
12 Adapter 一般 代码级 重构时 一般 对象接口的变化 接口的转换  
13 Bridge 一般 代码级 设计时、编码时 一般 对象的多维度变化 分离接口以及实现 开闭原则
14 Decorator 一般 代码级 重构时 比较复杂 对象的组合职责 在稳定接口上扩展 开闭原则
15 Iterator 一般 代码级、应用级 编码时、重构时 比较简单 对象内部集合的变化 封装对象内部集合的使用 单一职责原则
16 Mediator 一般 应用级、构架级 编码时、重构时 一般 对象交互的变化 封装对象间的交互 开闭原则
17 Memento 一般 代码级 编码时 比较简单 状态的辅助保存 封装对象状态的变化 接口隔离原则
18 State 一般 应用级 设计时、编码时 一般 对象状态的变化 封装与状态相关的行为 单一职责原则
19 Visitor 一般 应用级 设计时 比较复杂 对象操作变化 封装对象操作变化 开闭原则
20 Prototype 不太常用 应用级 编码时、重构时 比较简单 实例化的类 封装对原型的拷贝 依赖倒置原则
21 Flyweight 不太常用 代码级、应用级 设计时 一般 系统开销的优化 封装对象的获取  
22 Chain of Resp. 不太常用 应用级、构架级 设计时、编码时 比较复杂 对象的请求过程 封装对象的责任范围  
23 Interpreter 不太常用 应用级 设计时 比较复杂 领域问题的变化 封装特定领域的变化  

学会一个项目中尝试有相应的场景使用一个才是王道。

posted @ 2013-01-02 11:51  toon的泥瓦匠  阅读(1500)  评论()    收藏  举报