`

设计模式——初学者的探讨

阅读更多
    设计模式这个词,我在四天前第一次听到。其实说白了,对于初学者来说,设计模式还只是一种可望而不可及的虚幻的形式;但不可否认的是,在程序编写的过程中,在项目运作的过程中,设计模式是一个必不可少的考虑因素,一个极其重要的实现环节,也是我们由菜鸟最终走向大神的必由之路。
    设计模式,说白了,其实就是前人在编写程序时,所总结一系列模式,所悟出的一系列经验,所遵循的一系列套路。我们运用它,是要对我们的程序做一种不同以往的加工,使我们的程序执行力更强,占用的空间更少,更具鲁棒性,更易于扩展开发,最终达到我们程序的终极。
    设计模式的基本原理有三:
    1.开闭原则
    简单的说,开闭原则就是:程序应该对修改关闭,对扩展开放。
对于我们的一个项目来说,我们希望项目具有很好的扩展性能,所以我们要尽可能的使类与类之间的关系更为明朗化,达到胡 总前面所讲的“低耦合,高内聚”的目的。对修改关闭的意思其实就是我们一旦写好了一个类,那么,这个类我们就尽量(几乎)不要再去修改,而且要尽量的避免它与其他类之间所产生的“耦合”关系,这是我们程序达到一种鲁棒境界的要素,一旦我们需要添加扩展程序的时候,就再写一个类或者模块,加到我们的源程序中;试想,倘若我们一开始就将类之间的关系写得相当复杂(A调用了B,B调用了C,C调用了D,D调用了E,E调用了B,B调用了E,……),那么当我们要再加入一个心的功能时,麻烦了,我们几乎要修改与之关联的所有类的代码,当然,事先还要将这些代码通读一遍,以求做到心中有数。那么,现在,使用了开闭原则,使我们工作量大大减小,同时程序也更为健壮了,我们的目的初步达到了。
    2.里氏代换
    当我们的程序使用到继承的时候,知道继承有一个特点,就是子类可以在未重写父类的某个方法的情况下,调用父类的相应方法,这就是我们所说的里氏代换,其实,它就是继承的特性。
    那么,有人要问,那么为什么还要单独将它拿出来呢?这个原理要告诉我们的是,子类可以方便的调用父类的方法,也就如同在讲继承时说的一样,减少了代码的冗余,增强了程序的可读性。可是,如果重写了呢?这就引出了我们的第三个原则:
    3.少用继承,多用聚合
    我们在编写程序的过程中了解到,如果在子类中重写了父类的方法,那么在父类中写过的被重写了的方法就失效了,相当与我们在父类中编写一个多余的方法,因为我们已经确定使用在子类中的那个方法了,尤其是当我们在实现多重继承时,那就更为麻烦了,每个继承者倘若都重写了这一方法,继承的效率将不可避免的降低,这是我们不愿看到的。所以,少用继承,而多用聚合,聚合其实就是我们所说的星形结构,这也是在原则一里面重点强调过的东西,少了很多的继承关系,就不会为很多由继承所带来的复用不足而头疼,变相的实现了程序的可操作性。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics