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

推荐订阅源

Cyberwarzone
Cyberwarzone
Recent Announcements
Recent Announcements
D
DataBreaches.Net
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 聂微东
博客园 - 【当耐特】
aimingoo的专栏
aimingoo的专栏
N
Netflix TechBlog - Medium
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
L
LangChain Blog
The Cloudflare Blog
Y
Y Combinator Blog
AI
AI
P
Palo Alto Networks Blog
美团技术团队
有赞技术团队
有赞技术团队
I
Intezer
Last Week in AI
Last Week in AI
Know Your Adversary
Know Your Adversary
D
Darknet – Hacking Tools, Hacker News & Cyber Security
NISL@THU
NISL@THU
博客园 - 三生石上(FineUI控件)
MongoDB | Blog
MongoDB | Blog
S
Schneier on Security
IT之家
IT之家
博客园 - 司徒正美
A
Arctic Wolf
罗磊的独立博客
雷峰网
雷峰网
Vercel News
Vercel News
SecWiki News
SecWiki News
AWS News Blog
AWS News Blog
GbyAI
GbyAI
WordPress大学
WordPress大学
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Tor Project blog
V
Vulnerabilities – Threatpost
Hugging Face - Blog
Hugging Face - Blog
H
Heimdal Security Blog
Schneier on Security
Schneier on Security
H
Help Net Security
T
Troy Hunt's Blog
N
News and Events Feed by Topic
爱范儿
爱范儿
V2EX - 技术
V2EX - 技术
Project Zero
Project Zero
T
The Exploit Database - CXSecurity.com

博客园 - 鱼十七

[Programming Entity Framework] 第3章 查询实体数据模型(EDM)(二) [Programming Entity Framework] 第3章 查询实体数据模型(EDM)(一) [Programming Entity Framework] 第2章 探究实体数据模型(EDM)(三) [Programming Entity Framework] 第2章 探究实体数据模型(EDM)(二) [Programming Entity Framework] 第2章 探究实体数据模型(EDM)(一) [Programming Entity Framework] 第1章 ADO.NET实体框架介绍(二) [Programming Entity Framework] 第1章 ADO.NET实体框架介绍(一) Programming Entity Framework 第二版 翻译索引 WP7 学习手记1.你好 WP7 excel2007内容转成xml ASP.NET 生成静态页面的思路介绍 scrum介绍 SQL SERVER 2005服务无法启动问题的解决办法 C#操作Excel知识点 [翻译]MS project 与 MS Team Foundation Server(TFS)的域映射 [翻译]通过调用多个动作创建ASP.NET MVC视图 [翻译]在ASP.NET MVC中绑定数据(包括分页和排序) MOSS文章过滤QueryString Filter Web Parts使用及Web Parts部署 ASP.NET方式在工作组内修改帐户密码
设计模式学习笔记 1.介绍
鱼十七 · 2012-02-27 · via 博客园 - 鱼十七

学习设计模式是为了深入理解OO思想和原则。

学习设计模式的基础知识:

必须先有类和对象,才可以谈设计模式。把现实世界的业务功能抽象成对象,如何抽象?GRASP给出了基本的指导原则。

GRASP, General Responsibility Assignment Software Patterns,通用职责分配软件模式。描述了对象设计和职责分配的基本原则。

  1. 信息专家

    如果某个类拥有完成某个职责所需的所有信息,那么这个职责应该分配给这个类去实现。

  2. 创建者

    正确创建耦合关系,凡符合以下条件,皆可用A创建B。

    1. A是B的聚合
    2. A是B 的容器
    3. A持有初始化B的信息
    4. A记录B的实例
    5. A频繁使用B

  3. 低耦合

    尽可能减少类之间的连接。

    作用:降低因一个类的变化而影响其它类的范围;类变得简单,更内聚更容易理解。

    造成A、B之间的耦合有如下情况:

    1. A是B的属性
    2. A调用B的实例方法
    3. A的方法中引用了B,返回值或参数中
    4. A是B的了类,或A实现了B

    降低耦合的原则:Don't talk to strangers

  4. 高内聚

  5. 控制器

    用来接收和处理系统事件的职责,一般分配给能够代表整个系统的类(可能有多个,分管不同的事务)。

  6. 多态
  7. 纯虚构
  8. 间接
  9. 受保护变化

设计原则:

比设计更重要的是原则。

  1. 单一职责原则
  2. 开发-封闭原则
  3. 依赖倒置原则
  4. 接口隔离原则
  5. 替换原则