设计模式前传---UML图和六大设计原则

    声明:文章内容根据大牛博客的内容,自己理解后,给自己做的学习笔记,文末会附上大牛博客地址链接。有需要沟通交流的可加我QQ群:425120333
    正所谓,磨刀不误砍柴工。只有准备充分了,做事才能事半功倍。学习也是同样的道理,我第一次学习设计模式的时候,纯粹是看着视频学着敲
看的时候,理解了一点点简单的,但是总的都是过一遍,只是看的当时,懂了。对是看懂了,至于后面的掌握和会用,差了十万八千行代码。
    在这里提个建议,如果要学习新的知识(仅针对Java编程方面),动手是相当关键的,只有理解了并且能自己能动手写下来,你才能算是看懂了。
虽然当时学习设计模式时我也这样做了,我看懂了,可是过了几天,我就忘了差不多了,除了其中有几个特别简单的还有点印象。时隔大半年,我再次来学习设计模式,
我发现了两点:一、当时学习时连一些基本概念都没搞清楚,就像不会加减,就直接去学乘除了。二、当时的自己代码量还太少,写代码没什么感觉。
这两点都很重要,就设计模式来说,连六大设计原则和UML图都不知道是什么,去看设计模式,真的算是没学会走,就先学着飞了。还有代码量,虽然代码量不能作为
衡量一个人水平的标准,不过在水平低时,还是很看重代码量的(要养成好习惯,不要复制黏贴,每一行,每个单词都是用键盘敲出来),只有保证了代码量,才能谈代码质量。
    这两点中,代码量纯靠积累,别人谁都帮不了。这里谈谈UML图,关于这图你参考下这个链接http://blog.csdn.net/suxinpingtao51/article/details/8011335 
看完这个你对UML图中每条线什么意思应该都明白了,这也就差不多了(当然也可以继续深入)。
    接下来理一理六大设计原则,首先是单一职责原则,这个好理解,就是保证每个类都只干一件事。通俗的将你不要将多个功能混合在一起,
比如中国的筷子,就包含了多个功能。而外国就分为了刀和叉,两个工具分工明确。(这里不是吐槽筷子不好,只是就单一职责原则而言,违反了)不过
单一职责难做的点是职责不好划分,每个人心中对职责的定义也不一样,所以这个原则也不是绝对的。
    接着是里氏替换原则,这个原则是对继承来说的,就是用父类的地方同样能用子类代替,说的直白点就是子类继承父类时不要重写父类中已有的方法。
这样就能保证不违反里氏替换原则了,否则在某一模块用了父类的方法,现在改为用子类中的同样的方法替换时,因为子类重写了,使得整体逻辑变了。
    第三个要讲的是接口隔离原则(最小接口原则),这个和单一职责有些类似,就是在定义接口时,接口中的方法要尽量少,要扩展时通过接口间的继承
来实现。最好的办法就是每个接口都只有一个方法(理想情况),这样新的接口要什么功能就去继承相应的接口就行。
    第四个是依赖倒置原则,用定义去理解有点难懂(定义可以百度),我的理解就是面向抽象(接口、抽象类)编程,对象声明的时候声明为父类类型,
后面要变动,也只需要变动相应的子类即可,其他都可以不用变。
    第五个是迪米特原则(最小知道原则),指的是一个类暴露给其他类的信息不要太多(要求封装,使用private关键字),同时这个类也尽量不要使用
其他类中的信息(方法、属性等)。这样一来,每个类自身的变动,对其他类的影响就大大的降低了。
    最后一个要将的开闭原则,对扩展开发,对修改封闭。就按字面来了解即可。如果能尽量满足前面五条原则,开闭原则基本也会满足。
    六大设计原则是我们开发代码中应该尽量遵守的原则,当然存在很多情况我们不得不违反一些原则,这时需要考虑违反带来的效益,权衡利弊。
最终决定方案,毕竟设计的再好也要贴合实际,满足需求是前提原则。最后贴一句很有意义的话:用抽象搭建框架,用细节实现扩展。(来自大话设计模式)
    上述都是自己对自己的归纳总结,估计也就自己能看明白,附大牛对六大设计模式讲解链接:http://www.cnblogs.com/zuoxiaolong/p/pattern1.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值