`

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

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

相关推荐

    设计模式——GFour

    《设计模式——GFour》是一本深受IT从业者喜爱的经典书籍,尤其在C++开发者中具有广泛影响力。设计模式是软件工程领域中的一种最佳实践,它总结了在特定情境下解决问题的常见方法,使得代码可读性更强,复用性更高,...

    Oracle数据库设计文档——帮助数据库初学者了解数据库设计

    Oracle数据库设计是构建高效、稳定、可扩展的数据库系统的基础,尤其对于初学者来说,理解这一过程至关重要。本文档将深入探讨Oracle数据库的设计原理和实践技巧,帮助新手逐步掌握数据库设计的基本概念和方法。 ...

    设计模式可复用面向对象软件的基础(C++)——强烈推荐

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。在面向对象编程中,设计模式提供了一种标准化的...无论是初学者还是经验丰富的开发者,都可以从中受益,提升自己的软件设计水平。

    餐饮管理系统代码——适合一些初学者

    初学者可以通过学习界面设计,掌握如何创建友好的用户体验。 2. **菜单管理**:系统需维护菜品信息,包括名称、价格、图片等。初学者可以了解数据库操作,学习如何存储和检索数据。 3. **订单处理**:顾客下单后,...

    《设计模式--基于C#的工程化实现及扩展》.(王翔)_《0528》.rar

    《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者王翔通过C#语言来阐述各种设计模式的工程化应用和拓展。设计模式是软件开发中的一种最佳实践,它总结了在特定场景下解决常见问题的...

    设计模式解析.pdf

    《设计模式解析》这一标题暗示了书籍将深度探讨各种设计模式,包括其原理、应用及背后的思维逻辑,帮助读者掌握并灵活运用这些模式来优化软件设计。 #### 描述解析:设计模式的入门与精通之路 描述中提到设计模式...

    设计模式源码.zip

    最后,"设计模式——基于C#的工程化实现及扩展_示例说明.txt"文件提供了对源码的解释和应用场景的描述,这对于初学者来说是极其宝贵的资源。它可以帮助你理解每个模式的意图、适用场景以及如何在C#代码中正确地引入...

    设计模式可复用面向对象软件的基础(c++).pdf

    ### 设计模式——可复用面向对象软件的基础 #### 核心知识点概览 《设计模式可复用面向对象软件的基础》一书是面向对象设计领域的重要著作,它聚焦于如何构建可复用的面向对象软件,特别是针对C++语言环境下的设计...

    设计模式的几本书

    设计模式是软件工程中的一种重要概念,它代表了在特定情境...设计模式的应用不仅限于Java,它们在各种面向对象的编程语言中都有广泛的应用,因此无论是初学者还是经验丰富的开发者,都应该重视对设计模式的学习和掌握。

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    ### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 0. 引言 ##### 0.1 设计模式解析(总序) 设计模式是面向对象编程中用于解决常见问题的一系列模板。它们为软件设计提供了标准化的解决方案,帮助...

    国外经典教材数据结构与算法——面向对象的C设计模式

    本书“国外经典教材数据结构与算法——面向对象的C++设计模式”深入探讨了如何使用面向对象编程思想来构建高效、可维护的数据结构和算法。面向对象编程(Object-Oriented Programming, OOP)以其封装、继承和多态等...

    设计模式PPT---25种设计模式详解

    这份名为“设计模式PPT——25种设计模式详解”的资料,显然是一个深入探讨设计模式的教程,它通过PDF格式对25种主要的设计模式进行了详尽的阐述。 首先,我们要理解设计模式的基本概念。设计模式不是代码,而是一种...

    java 设计模式幽默解读

    在IT行业中,设计模式是软件开发中的重要概念,它代表了在特定场景下解决常见问题的最佳实践。...无论你是初学者还是有经验的开发者,都能从中受益匪浅,进一步掌握设计模式的精髓,提高自己的软件设计能力。

    JAVA设计模式.chm

    本资源“JAVA设计模式.chm”聚焦于一种重要的设计模式——工厂模式。工厂模式是面向对象设计中的一种经典模式,它在Java程序中扮演着核心角色。 工厂模式的核心思想是提供一个创建对象的接口,但让实现这个接口的类...

    设计模式-可复用面向对象软件的基础

    总结来说,《设计模式——可复用面向对象软件的基础》这本书是面向对象设计的宝典,无论是初学者还是经验丰富的开发者,都能从中受益匪浅,理解并掌握这些设计模式将对提升软件开发的专业素养有着深远的影响。

Global site tag (gtag.js) - Google Analytics