设计模式番外篇

来源:互联网 发布:女包包网淘宝网 编辑:程序博客网 时间:2024/05/30 20:07

对于设计模式,我们都知道,我们需要了解它,逐步的吃透它,不仅仅是为了应对当前这个激烈竞争的市场环境,在面试时给自己额外加分,而是我们如何在项目中去运用它。知其然,必要知其所以然,在学一个新的技术的时候,有时候我们只是照猫画虎的用用是不行的,我们需要用额外的手段加深自己的记忆和理解力。

        之前在4g思维密码中,看到一张图,介绍如何高效率的吸收自己所学的知识,其中最好的方式是转教别人/立即应用。虽然我可能在写这篇博客的时候,对设计模式的理解还是很浅,但学会这种思维模式才是关键,因为它不仅仅适合设计模式,还有很多领域,我都可以用。

对于设计模式,其实我们不用,我们照样能实现我们的业务逻辑,照样能完成任务,就像以前农村割麦子用镰刀,后来出现了收割机,这样效率提升了不少了,而且避免了镰刀在收割中人力,物力的投入,大大提高了效率,但是用收割机你需要金钱的投入,你很不舍得,学习设计模式也一样,你需要投入大量的精力去理解,但是并不是任何时候都需要用设计模式,一小块地也没必要用收割机的去收割(况且别人可能不会去管你的地),设计的使用也是一样。

对于设计模式,我觉得我们一定要理解透彻面向对象,因为我觉得那是设计模式的根基,打好根基,有助于很快的理解设计模式。

面向对象的三大特性:继承,封装,多态。

继承:说到继承,有两类继承方式,一种是抽象继承,一种是实现继承,对于抽象继承,其实就是一个家族基因遗传,每一个有血缘关系的人,对于自己的父亲,爷爷都或多或少的有关系,对于继承的子类,我拥有父类所有非私有的或特有的行为和变量,但是实例化子类的时候,要先实例化父类。这里面还有关于静态属性的一些知识,放在下一篇关于类加载器进行简单的探讨。实现继承是,接口定义的方法都是抽象的公共方法,变量都是final类型的,赋予初始值。

封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。 百度百科的定义,对于封装,其实我能想到的就是整体和部分,一个整体是需要很多单一的东西组成的。比如:人,有眼睛,耳朵,鼻子属性,有吃,喝,拉,撒动作,所以这些单一的事物,组成了一个类,人。对于封装的好处,第一,隐藏了类的属性和方法,二,复用这些属性和方法,第三,容易理解类的构造,和维护一系列的类。把一个东西零零散散给你好,还是打包给你一个完整的,你要什么自己去取的好。

多态:允许将子类类型的指针赋值给父类类型的指针。多态是设计模式的核心,设计模式使用多态,使得父类的引用可以代替子类,方法的决定权交给子类的实例。对于多态的状态,有运行时和编译时两种状态,“成员变量,静态方法看左边;非静态方法:编译看左边,运行看右边”(摘录)。之前总是不理解为什么编译看左边,运行看右边,写了几个例子后,就是有时候编译的时候,会校验其语法的准确性,运行的时候还是指向子类的实例变量。

     自己简单的总结了一下,其事没必要做这些事情,因为有很多的博客已经写的非常好了,总之上面图给出的结论,你这样才能掌握的更牢靠。