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

推荐订阅源

S
Security @ Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
C
CERT Recently Published Vulnerability Notes
T
Threatpost
C
Cisco Blogs
Know Your Adversary
Know Your Adversary
T
Tor Project blog
博客园 - 司徒正美
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
AWS News Blog
AWS News Blog
人人都是产品经理
人人都是产品经理
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
A
Arctic Wolf
L
LINUX DO - 热门话题
C
Cyber Attacks, Cyber Crime and Cyber Security
爱范儿
爱范儿
美团技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
F
Full Disclosure
SecWiki News
SecWiki News
T
The Blog of Author Tim Ferriss
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
P
Palo Alto Networks Blog
博客园 - 叶小钗
C
Check Point Blog
Scott Helme
Scott Helme
V
Visual Studio Blog
博客园 - 聂微东
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google Online Security Blog
Google Online Security Blog
大猫的无限游戏
大猫的无限游戏
The Register - Security
The Register - Security

博客园 - 殇

java--callback GEF七天之第五天 java基础--特殊的String GEF七天之第四天 GEF七天之第三天 GEF七天之第二天 GEF七天之第一天 距离矢量路由算法(最短路Bellman-Ford实现)实现 网络编程--简单实现javaftp服务器 网络编程--ftp客户端的实现(c#版) c#套接字的实现 好东西大家分享: JAVA学习的一些重点 最基础的数据结构(转自程序员杂志) java面试算法题(经典) (转)JSP上传视频后自动转成flv的核心JAVA方法 2008年1月编程语言排名(转) 利用Render方法生成静态页 (转)实现struts2的CRUD中的权限控制(二) (转)实现struts2的CRUD中的权限控制(一)
java设计模式基础之设计原则
· 2008-09-30 · via 博客园 - 殇

   设计模式是什么,在学习面向对象的过程中,我们总会不时的接触到模式!正如前人所说设计模式是人们的经验总结!在软件开发中我们总会遇到一些可重复的组件也好,代码段也好,这样就促使我们关注面向对象的可复用技术,而随着可复用技术的发展,一些固定的模式就随之出现!他们就是我们现在学习的所谓设计模式!不管学习什么技术,都要从基础出发,这是我的一贯原则!在看了n个设计模式后,我忽然发现对设计模式我还是不得要领!终于在Java与模式这本书中我看到了我想要的,及一些设计模式所要遵守的原则:

   首先是可复用设计的基石:开闭原则,即一个软件实体要对扩展开放,对修改关闭!这句话对于有一些面向对象编程经验的人应该不陌生!不管是什么软件系统,设计者总是希望在不用更改源代码的情况下可以扩展。

   第二个原则是:里氏代换原则,这个原则依然是我们众所周知的,其表述是如果一个软件实体使用一个基类的话,那么一定适用其子类,而且他根本察觉不出其基类对象和子类对象的区别。其实学习面向对象语言的人都知道,子类拥有基类的除其私有资源的一些特性!在java中,编译器通常会检查是否符合里氏代换原则!

  第三个原则是:依赖倒转或者叫依赖倒置原则,这个原则也许大家听说过,但是由他演变的另一个名词我想大家应该不陌生---IOC(依赖注入),对有人说IOC其实就是DIP。不过我认为ioc应该是一种技术,他是为了实现dip的,dip的表述就是:抽象不应该依赖于细节,细节应该依赖于抽象!或者是“应当依赖于接口编程,不应依赖于实现”。基本上要想实现开闭原则,dip应该是必须途径!至于ioc的设计理念,最近正在学习,我将在另一篇帖子中谈一下我对他的理解!

  第四个原则是:接口隔离原则,一个类对另外的一个类的依赖应当建立在最少的接口之上!这也许对于我们难以理解,那么我来换另一种表述:使用多个专门的接口比使用单一的接口要好!我们在编写程序中往往想将接口写的越少越好,于是乎,我们将多个功能的代码,放到同一个接口中!其实这是错误的,我们应当将不同功能分开设立专门的接口,这正是接口隔离原则

  其实,以上几个原则,在我们学习面向对象编程的过程中,都有接触。以上几个原则也是设计模式所遵循的原则!理解这些基本理论对于设计模式,或者说编程思想的学习是大有益处的!!!