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

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Help Net Security
Help Net Security
P
Privacy International News Feed
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
AWS News Blog
AWS News Blog
K
Kaspersky official blog
A
Arctic Wolf
Latest news
Latest news
T
Threat Research - Cisco Blogs
L
LINUX DO - 最新话题
P
Privacy & Cybersecurity Law Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Google DeepMind News
Google DeepMind News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
月光博客
月光博客
N
News and Events Feed by Topic
Jina AI
Jina AI
博客园 - 司徒正美
WordPress大学
WordPress大学
罗磊的独立博客
雷峰网
雷峰网
AI
AI
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Security @ Cisco Blogs
博客园 - 三生石上(FineUI控件)
H
Heimdal Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cisco Blogs
博客园 - 【当耐特】
The Hacker News
The Hacker News
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Schneier on Security
Schneier on Security
博客园 - Franky
S
SegmentFault 最新的问题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cloudbric
Cloudbric
爱范儿
爱范儿
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
Last Week in AI
Last Week in AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Know Your Adversary
Know Your Adversary
Google DeepMind News
Google DeepMind News

博客园 - EasyWriter

回顾工作这五六年来,该总结下得与失了 Log4Net 开发文档 面向对象的开发方法(Object Oriented,OO) 基于Lucene.net开源搜索 浅谈 数据库连接池〔翻译〕 转载“internet explorer 无法打开 interne 站点 已终止操作”错误的问题解决 海量数据的查询 海量数据库的查询优化及分页算法方案(转载) 把SQL SERVER里表里的数据导出成为insert into 脚本 静态(Static)方法 如何在子线程中操作窗体上的控件 .NET性能优化方面的总结 FCKeditor 2.2 + Asp.Net 设置 Asp.net直接保存文件到客户端 系统流程图简介 得到页面body区域内容的高度 常用的正则表达式集锦 深入理解abstract class和interface 如何最大限度提高.NET的性能
面向对象设计原则
EasyWriter · 2007-08-13 · via 博客园 - EasyWriter

一、单一职责原则

就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因;

一个合理的类,应该仅有一个引起它变化的原因,即单一职责;

二、开放封闭原则

实现开放封闭原则的关键是抽象;

依据开闭原则,我们尽量不要修改类,只扩展类,但在有些情况下会出现一些比较怪异的状况,这时可以采用几个类进行组合来完成;

将可能发生变化的部分封装成一个对象,封装变化是实现"开闭原则"的一个重要手段,如经常发生变化的状态值,如温度,颜色,积分,排名等等,可以将这些作为独立的属性,如果参数之间有关系,有必要进行抽象。对于行为,如果是基本不变的,则可以直接作为对象的方法,否则考虑抽象或者封装这些行为;

三、Liskov替换原则

保证系统或子系统有良好的扩展性。只有子类能够完全替换父类,才能保证系统或子系统在运行期内识别子类,因而使得系统或子系统有了良好的扩展性。

此原则和“开放封闭原则”的作用有点类似,其实这些面向对象的基本原则就2条:

1:面向接口编程,而不是面向实现;

2:用组合而不主张用继承。

四、依赖倒置原则

描述:

1、高层模块不应该依赖于低层模块,二者都应该依赖于抽象。

2、抽象不应该依赖于细节,细节应该依赖于抽象。

启发式规则:

1、任何变量都不应该持有一个指向具体类的指针或者引用

2、任何类都不应该从具体类派生(始于抽象,来自具体)

3、任何方法都不应该覆写它的任何基类中的已经实现了的方法

五、接口隔离原则

使用多个专门的接口比使用单一的总接口要好。

一个类对另外一个类的依赖性应当是建立在最小的接口上的。

一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。