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

推荐订阅源

小众软件
小众软件
IT之家
IT之家
博客园 - 聂微东
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
人人都是产品经理
人人都是产品经理
PCI Perspectives
PCI Perspectives
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
V
Vulnerabilities – Threatpost
美团技术团队
S
Secure Thoughts
N
News | PayPal Newsroom
L
LINUX DO - 最新话题
腾讯CDC
Application and Cybersecurity Blog
Application and Cybersecurity Blog
雷峰网
雷峰网
B
Blog
MyScale Blog
MyScale Blog
T
The Blog of Author Tim Ferriss
TaoSecurity Blog
TaoSecurity Blog
N
News and Events Feed by Topic
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
T
Tailwind CSS Blog
月光博客
月光博客
Simon Willison's Weblog
Simon Willison's Weblog
Hacker News: Ask HN
Hacker News: Ask HN
The Last Watchdog
The Last Watchdog
Google DeepMind News
Google DeepMind News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
MongoDB | Blog
MongoDB | Blog
S
Security @ Cisco Blogs
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
S
Security Affairs
Forbes - Security
Forbes - Security
P
Palo Alto Networks Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
T
Tor Project blog
O
OpenAI News
L
Lohrmann on Cybersecurity
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LangChain Blog
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 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、任何方法都不应该覆写它的任何基类中的已经实现了的方法

五、接口隔离原则

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

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

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