zoukankan      html  css  js  c++  java
  • 设计原则笔记

      来西安快2个星期了,带领学员们一起学习Flex,当然之前要学习HTML、CSS、JavaScript、XML等相关前端基础知识,自己也收获不少。一方面锻炼了自己的技术能力,同时也提升了项目管理、和人沟通的能力。之前在学习也接触过一些设计原则,有点印象,可能是当时的代码量不多,所以体会不深。现在应该有些理解了。

      我们做计算机或者软件开发的,肯定和代码和文档打交道的多,有时我们的工作就是这2样了,当然有时也会开会讨论。但是在IT行业,思想决定了您未来的发展方向和晋升的职务。当然,我们的代码量最好是10K以上,要不然我们无法体会设计原则的思想和精华。

      首先,就是设计的基本原则:

      1.封装变化(Encapsulate what varies)

      2.面向接口编程而非实现(Code to an interface than to an implementation)

      3.优先使用组合而非继承(Favor compositon over Inheritance)

      第一点和第二点相对好理解,但是第三点有点转不过弯来,后来上网查了一下,如果过多的使用,代码的耦合度较大,后期不好维护。前辈的理解:因为我们需要体现事物在抽象层面上的共通性,这时候接口就出现了,我们通常更关注can-do而不是is-a(当然不排除很多时候我们关注后者),组合可以帮助我们做到一个事物得到多个事物的功能(真传),而不是财产(遗传基因),所以我们可以通过组合来实现接口,以接口继承的形式来实现一种关注can-do的多继承。

    相比继承,接口实现更加灵活,组合更加具有可变化性,并且不会让继承树太过复杂,造成类库的难以控制。

      另外我还参考了://blog.csdn.net/Cpp_Java_Man/archive/2006/05/02/705279.aspx,这边博文对组合和继承讲解比较通俗易懂。我们为什么不用继承?继承破坏了类的封装性,增加了类与类之间的耦合度,虽然继承是面向对象三大特征之一,我们还是要转变一下观念。当然最初学面向对象设计时,我们还是有必要使用继承。

      然后就是5大原则了:

      1.单一原则:一个类只完成一系列相同的事情,当然不是说一个类就一个方法。要不然我们修改一处,其他的地方都要修改,为维护性差

      2.开放-封闭原则:扩展是开放的,更改是封闭的

      3.里氏替换原则:子类必须能够替换它们的基类。经典的例子就是:企鹅类和鸟类,企鹅是鸟,但是不能飞,所以我们设计这2个类就要注意了。不是简单的继承关系了

      4.依赖倒置:高层模块不依赖底层,二者都依赖于抽象;抽象不依赖于细节,细节依赖于抽象,现在还是有些模糊;

      5.接口分离原则,这个相对好理解,一个接口就完成一个功能,不要担任过多的功能。

      IT行业,所要求的还是大家的兴趣,以及学习新技术能力。当然对于毕业生来说,实践(代码量的多少)和理论(专业基础)是无法替代的。

     

    本文基于 知识共享许可协议 知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议发布,欢迎转载,演绎,但是必须保留本文的署名liminjun88(包含链接http://www.cnblogs.com/liminjun88/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    Java学习笔记二:发展史之Java的发展
    Java学习笔记一:发展史之Java诞生前
    JPA学习笔记四:理论篇之CRUD
    JPA学习笔记二:实践篇之SpringBoot集成JPA
    JPA学习笔记一:理论篇之JPA介绍
    JPA学习笔记三:实践篇之实现正向工程
    MySQL:大表优化
    如何理解原型链中的prototype和__proto__?
    Node版本的升级和降级
    常用的git提交代码命令
  • 原文地址:https://www.cnblogs.com/liminjun88/p/1864329.html
Copyright © 2011-2022 走看看