`
haofeng82
  • 浏览: 145090 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

看JAVA 与模式,笔记(一)

阅读更多
看这本书第5遍了,感觉还是没入门,这次记点笔记,希望能加深印象
在进行可用软件设计的时候,最最关键的一点就是要遵循“ 开-闭”原则。
开闭原则的大体可以描述为:一个软件实体应当对扩展开放,对修改关闭。
设计一个模块时,应当使这个模块可以在不被修改的前提下被扩展。这句话其实是矛盾的。因为扩展也应该算是一种修改。我感觉应该这样说:设计一个模块时,应当使这个模块可以在不修改原来代码的的前提下被扩展。当然,这只是一个理想的情况。
JAVA 与模式这本书举的是一个玉皇大帝招安孙悟空的例子。
孙悟空当年打闹天宫,就是对天庭这个现有实体的一种挑战(修改),而玉皇大帝采取的解决办法是招安:既然我现在手下有这样许多官职,不妨再多建一个,加一个看马的人又能如何?(增加,即为扩展)。当然,这只是一个例子而已,也并不是很合适的。假如孙悟空的邪劲上来了,我就非要当个皇帝老儿又该怎么办?如果成功,那么天庭这个机构就要出现大的变动了(孙悟空当皇帝恐怕做法不会和原来的皇帝一样吧?)
招安之法的关键在于不允许改变现有的天庭秩序,但允许将孙悟空纳入现有的秩序中去,从而扩展了当前的秩序。用面向对象的语言来说就是:不允许修改系统的抽象层,而允许扩展系统的实现层
学过JAVA 的人看到这应该能想到:这不就是“继承”嘛!是啊,继承就是实现开闭原则的关键方法之一。
从另一个方面看“开-闭”原则
从另一个方面来看“开-闭”原则,就是“对可变性的封装原则”:找到一个系统中的可变部分,将之封装起来。考虑你的设计中什么可能发生变化,允许其发生变化而不会导致你的系统需要被重新设计。
抽象是“开-闭”原则的关键,我们在设计的时候,需要给系统定义一个一劳永逸,不在改变的 抽象设计。一个系统具有的功能需要在抽象层进行定义,在实现层进行实现。
分享到:
评论

相关推荐

    韩顺平_Java设计模式笔记.docx

    "韩顺平_Java设计模式笔记" 本资源摘要信息是对《韩顺平_Java设计模式笔记.docx》的总结和分析,该笔记涵盖了 Java 设计模式的基础知识、设计模式的七大原则、原型设计模式、解释器设计模式、单例设计模式等内容,...

    根据《JAVA与设计模式》整理的笔记及示例代码

    这份"根据《JAVA与设计模式》整理的笔记及示例代码"涵盖了Java语言和设计模式的核心概念,旨在帮助开发者理解和应用这些模式。 一、设计模式的基本概念 设计模式是对在特定情境下软件设计问题的解决方案的一种描述...

    java设计模式学习笔记

    ### Java设计模式学习笔记——外观模式(Facade Pattern) #### 概述 设计模式是软件工程领域中一种解决常见问题的可复用解决方案。在Java开发过程中,掌握设计模式能够帮助开发者更好地组织代码结构,提高代码的...

    Java设计模式学习笔记

    ### Java设计模式学习笔记 #### 1. 设计模式的七大原则 ##### 1.1 设计模式的目的 设计模式是一种解决特定问题的通用解决方案,它可以帮助开发人员编写出更高质量、更容易维护和扩展的代码。设计模式的目标在于...

    JAVA模式的读书笔记

    首先,我们来看看Java模式中的六大设计原则: 1. 开闭原则(Open-Closed Principle):一个模块或组件应该是对扩展开放,对修改关闭。这意味着当需要添加新功能时,我们应尽量避免修改现有代码,而是通过添加新的...

    java超强笔记

    此外,多线程编程也是Java的一大亮点,笔记会介绍线程的创建与同步机制,如synchronized关键字和wait/notify机制。 文件I/O操作是任何编程语言都不可或缺的部分,Java也不例外。笔记会讲解如何在Java中读写文件,...

    Java设计模式学习笔记.pdf

    3. 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 4. 原型模式:通过复制现有的实例来创建新的实例,避免了重复的初始化操作。 5. 单例模式:确保一个类只有一个实例,...

    Java设计模式笔记

    以上只是Java设计模式笔记的冰山一角,实际笔记中还会有更多关于每种模式的详细描述、示例代码和应用场景。通过学习和应用这些模式,开发者可以写出更加优雅、可维护的代码,提升团队协作效率和软件质量。

    韩顺平_java设计模式笔记

    Java设计模式是软件开发中的一种最佳实践,它们是为了解决特定场景下的设计问题而发展起来的。23种设计模式被广泛应用于提高代码的可重用性、可读性、可维护性和灵活性。韩顺平老师的Java设计模式课程通过生活中的...

    java设计模式源码和笔记(第一部分)

    本资料包“java设计模式源码和笔记(第一部分)”提供了对Java设计模式的深入理解和实践。其中包含了个人的学习笔记和Eclipse环境下实现的源码,方便读者导入后直接运行,进行实践操作。 1. **单例模式**:确保一个...

    《java学习》-java学习笔记.zip

    虽然SQL不是Java语言的一部分,但Java开发者经常需要与数据库交互。这部分可能介绍了JDBC(Java Database Connectivity),它是Java连接和操作数据库的标准API,包括连接、执行SQL语句、处理结果集等。 5. **设计...

    图解Java设计模式笔记总结word版本.rar

    本资料“图解Java设计模式笔记总结word版本”聚焦于通过图文并茂的方式,深入浅出地解析各种设计模式。以下是基于这个主题的详细知识点讲解: 1. **设计模式的分类** - **创建型模式**:如单例(Singleton)、工厂...

    Java入门学习笔记

    这份"Java入门学习笔记"涵盖了imooc网站上Java入门课程的三个赛季的内容,旨在为初学者提供一个全面的学习资源。 笔记的第一部分是"Java入门第一季学习笔记",它可能包括Java的基础概念和语法。这部分可能会讲解...

    java笔记 java笔记

    Java的设计理念是“一次编写,到处运行”,这意味着编写的Java程序可以在任何安装了Java虚拟机(JVM)的设备上运行。 #### 1.1 Java的特点 - **面向对象**:Java是一种纯粹的面向对象的语言,几乎所有的数据都是以...

    Java设计模式笔记-尚硅谷

    Java设计模式笔记-尚硅谷

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    狂神说JAVA的所有笔记.zip

    在JAVA的进阶部分,笔记可能讲解了设计模式,这是解决常见编程问题的模板,如单例模式、工厂模式、装饰器模式等,能提升代码的复用性和灵活性。同时,可能会涵盖JVM(Java虚拟机)的工作原理,包括内存管理、类加载...

    尚硅谷JAVA基础笔记吐血整理

    “尚硅谷JAVA基础笔记”涵盖了Java语言的基础知识,包括语言概述、基本语法、面向对象概念、封装、继承和多态,以及一些关键概念如形参与实参、属性与局部变量、构造器、this关键字、包和MVC设计模式的使用。...

    李兴华java笔记

    《李兴华Java实战经典笔记》是一份深入探讨Java编程技术的宝贵资料,由知名IT教育专家李兴华编撰。这份笔记集合了他在教学和实践中积累的丰富经验,旨在帮助学习者掌握Java的核心概念、设计模式以及实战技巧。通过这...

Global site tag (gtag.js) - Google Analytics