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

推荐订阅源

Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
N
Netflix TechBlog - Medium
腾讯CDC
C
Check Point Blog
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
S
SegmentFault 最新的问题
F
Fortinet All Blogs
美团技术团队
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
F
Full Disclosure
Recorded Future
Recorded Future
D
DataBreaches.Net
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
J
Java Code Geeks
I
InfoQ
Y
Y Combinator Blog
A
About on SuperTechFans
AI
AI
爱范儿
爱范儿
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
W
WeLiveSecurity
M
MIT News - Artificial intelligence
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
Schneier on Security
Schneier on Security
The GitHub Blog
The GitHub Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Docker
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
V2EX - 技术
V2EX - 技术
Project Zero
Project Zero

博客园 - 登峰

VS2010 工具箱装载出错 将用户导入到membership 网络和笔记本 用live writer写博客 javascript写计数器 - 登峰 - 博客园 上海招聘.net程序员 Virtual Machine--Vmware(2) Virtual Machine -- VmWare(1) 代码自动生成操作 - 登峰 - 博客园 病毒惹的祸 一道受用终身的测试题 慎用优化工具 一个简单的存储过程代码生成器 DataGrid的Bug? 哪个是最好的ORM 还原master数据库 Sql Server实用操作小技巧集合(转载) .net 程序发生了一个不可捕获的异常 n取的r的组合数问题
C#设计模式---概述篇
登峰 · 2005-06-22 · via 博客园 - 登峰
     

设计模式似乎很时髦,但却很实在,原因是他能使解决方案既优雅又简单,又可复用.设计模式似乎说的很玄,事实上,设计模式仅仅是一些在项目之间和程序之间复用面向对象代码的简便方法.背后的思想很简单,对通用的对象间的相互作用方式进行记录和编目.来对于武术来讲,这好比是套路,当然是经典还是MVC框架,框架的设计目标就是描述对象如何通信才能不牵涉相互的数据模型和方法,其实跟软件工程的高内聚低耦合的目标是一样的,这也模式追求的目标,也是面向对象追求的目标

刚才提到低耦合,就是分离类,包括封装和继承,对于继承,因为一个子类可以继承父类的所有方法和所有非私有变量,所以一个基类不写得太详细,这是设计模式的一条原则

针对接口编程,而不是针对实现编程

实际上,如果您做过winform并使用继承的话,有时候你会感觉头痛,因为C#只支持类的单继承,如果您继承的是窗体,那麻烦大了,如果基类有任何问题的,你的子窗体将不能重画显示

设计模式的第二条原则是

优先使用对象组合,而不是继承

如何理解这句话,很简单,还是实现低耦合的目标,去年的一个项目消息系统中,就犯了这方面的错误,当时没看这书吧:)

因为一个消息系统中包括底层socket,命令解释器,委托器,发送器,中间层以及GUI,如果这方面的关系不处理好,做出来的系统结构相当差

如果您观察一下设计模式的例子,特别是观察者模式和中介者模式等,您会发现,它处处体现了上述两条设计模式的原则,请再次记住他们

 1. 针对接口编程,而不是针对实现编程

2. 优先使用对象组合,而不是继承