教为学:设计模式学习之路(一):设计模式的基本设计原则

教为学:设计模式学习之路(一):设计模式的基本设计原则

前言

概念性的东西让人头痛,又不得不说。

好像设计模式也很大程度上也偏向概念,甚至在一般的做增删改查程序员中,这些东西不是特别重要。

但是如果需要阅读框架源代码,对设计模式的了解和熟悉又必不可少,以前听Jfinal的作者也常常抱怨java的开源框架有很多存在过度设计,个人想了解设计模式是想开启自己阅读开源框架源码打好一条路子。

我们对原则进行简单的描述,能不能完全理解并不重要,很多东西是没有办法在短时间内凭借别人的一点点描叙一下子弄懂的。

但是我们起码得有点点概念。

单一职责原则

定义

我在网上找到了两种定义:

  1. 一个类仅有一个导致它变化的原因。
  2. 一个对象只包含单一职责,并且该职责被完整的封装在一个类里面。

我的理解

第一个好像是其标准定义,个人感觉难以理解,第二个好像容易理解一些。就是我们常常说的高内聚,低耦合。

而整个定义最让人无法理清的是职责本身?

职责本身太抽象,以至于,我们该怎么界定职责本身。什么叫单一职责。职责的颗粒度是最大的问题。

开发-关闭原则

定义

一句话:

对扩展开放,对修改关闭。

我的理解

对于这一点的实现在于分离变化与不变化的部分,抽象在这里面起了很重要的作用,然后把可变化的因素封装起来。

里式替换原则

定义

在软件系统中一个可以接受基类的地方,肯定可以接受子类。

我的理解

其实就是这个原则就是最好实现开闭原则的方式之一。基类是本身的功能,关闭的部分,子类是扩展的部分,同时保证了基类不需要修改。

依赖倒置原则

定义

高层模块不依赖底层模块,两者都依赖接口。

抽象不应该依赖具体实现,具体实现应该依赖于抽象。

我的理解

其实有点java经验的,我们都明白这东西,我们太熟了。依赖注入控制反转,同样是解耦合的。

接口隔离法则

定义

客户端不应该依赖哪些不需要的接口

我的理解

某种意义上是单一职责原则的另外表达,不应该依赖于哪些大而全的接口,而是依赖于那些专而精的接口。

最小知识原则

定义

不要和陌生人说话。

我的理解

不和陌生人说话,意思就是我们只和朋友说话,所谓朋友就是所必须依赖的类。

结束

其实,就是我的读书笔记的总结。

可以看看研磨设计模式这本书。以及下面这篇博文。

设计模式原理与详解。

http://blog.csdn.net/hguisu/article/details/7571617

转载于:https://my.oschina.net/u/1582282/blog/309116

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Java的设计模式可以按照以下步骤进行: 1. 理解基本概念:首先,了解设计模式基本概念、原则和分类。阅读相关的书籍、文章或教程,确保对设计模式基本概念有一个清晰的理解。 2. 学习常见的设计模式:从常见的设计模式开始学习,例如单例模式、工厂模式、观察者模式等。每种模式都有其独特的特点和应用场景,学习这些模式的原理、结构和使用方法。 3. 实践示例:通过编写实际的代码示例来加深对设计模式的理解。可以尝试在自己的项目中应用设计模式,或者通过编写小型的示例程序来实践各种设计模式。 4. 阅读源码和案例:阅读开源项目或者一些经典案例中应用了设计模式的代码。通过阅读源码可以学习到如何在实际项目中使用设计模式,以及设计模式在不同场景下的实际应用。 5. 参加培训或课程:参加相关的培训或课程,可以系统地学习设计模式,了解各种模式的详细原理和使用方法,并通过实践项目来加深理解。 6. 练习和交流:通过练习和交流来加强对设计模式的理解。编写小型的练习题、参与设计模式相关的讨论或者加入相关的开发社区,与其他开发者分享经验和知识。 记住,设计模式是一种思想和方法的集合,学习设计模式的目的是为了更好地设计和组织代码。在实际项目中,要根据具体的需求和场景选择合适的设计模式,避免滥用和过度设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值