`

java与模式笔记

阅读更多

1,  模式:人们在自己的环境中不断发现问题和寻找问题的解决方案的时候,发现有些问题以及解决方案不断变换面孔重复       出现,但是在不同的面孔后面有着共同的本质,这个本质就是模式。

 

2,  UML:统一建模语言。

             UML语言有以下重要功能:

            (1)可视化功能,可以帮助人理解

            (2)说明功能

            (3)建造功能

            (4)建文档功能

 

3,  UML包含以下几种图:

         用例图、类图、时序图、合作图、状态图、活动图、构件图、部署图。

 

4,  类图中包含一下几种关系:

           (1)一般化关系(继承关系)

           (2)关联关系(一个类知道另一个类的属性和方法,关联可以是双向也可以是单向的,但不鼓励双向)

           (3)聚合关系(是关联关系的一种,是整体和个体之间的关系,如汽车和引擎)

           (4)合成关系(组合关系)

           (5)依赖关系

 

5,  一个系统的可维护性和可重用性是面向对象的设计要解决的核心问题。

 

6,  软件的开闭原则(ocp):

           一个软件实体应该对扩展开放,对修改关闭。当设计一个模块的时候,应该使这个模块在不被修改的前提下被扩展。

 

7,  里氏代换原则:

          任何基类可以出现的地方那个,子类一定可以出现。是对开闭原则的补充,是对实现抽象化的具体步骤的规范。比如两个类,一个基类Base,另一个子类Derived类,如果一个方法可以接受一个基类对象Base的话methodBase b)那么它必然可以接受一个子类对象,即可以使用methodDerived d)。

 

8,  依赖倒转原则:

         (要针对接口编程,不能针对实现编程)要依赖与抽象,不要依赖于实现。因为抽象类是宏观层面上的业务逻辑,是做战略性判断和决定的地方,那么抽象层应该是相对稳定的,应当是复用的重点,所以应该依赖与抽象。

 

9,  组合/聚合复用原则:

         要尽量使用组合/聚合,而不是继承关系达到复用的目的。继承复用的优点:

        (1)新功能的实现较为容易,因为超类的大部分功能都可以通过继承关系进入到子类中

        (2)修改和扩展继承而来的实现较为容易。继承的缺点:

               (1)继承破坏包装,超类的实现细节都被暴露给子类

               (2)如果超类的实现发生变化,子类也需要做相应的变化

               (3)从超类继承来的实现是静态的,不可能在运行时间内发生变化,没有足够的灵活性。

 

10,     迪米特法则:

         一个软件实体应当与尽可能少的其他实体发生相互作用,已减少修改的压力。

 

11,        接口隔离原则:

             应当为客户端提供尽可能小的单独接口,而不是提供大的接口。一个接口应该只代表一个角色,                 而不应该代表多个角色。

 

12,              工厂模式:

1)简单工厂模式:一个接口N个实现类,由角色决定实现哪个实现类的实例。

     单例模式:I、构造方法是私有的,客户端不能直接对其进行实例化。

             II、通过静态方法来实现对象实例化,方法体内判断对象是否存在,如果存在则不进行创建,如果对象不存在,实例化一个对象。

             III、使用一个静态的属性来标示改对象实例。

     多例模式:与单例模式的共同之处在于,客户端都不能直接对其进行实例化,同时通过静态的方法向外界提供循环使用的自身的实例。   

     简单工厂模式的优点:客户端不用自己去创建对象实例,而是由工厂类自己去创建实例,因此客户端只负责去消费该实例即可。

             2)工厂方法模式:

                 与简单工厂模式的不同点是,不再抽象工厂类中将所有的类进行实例化,而是在具体的实现类                      中进行实例化。

3)抽象工厂模式

分享到:
评论

相关推荐

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

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

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

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

    java设计模式学习笔记

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

    Java设计模式学习笔记

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

    java超强笔记

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

    Java设计模式笔记-尚硅谷

    Java设计模式笔记-尚硅谷

    Java学习笔记.zip

    除了以上内容,Java学习笔记还可能会包含Java数据库连接(JDBC)的知识,这是Java与数据库交互的基础。JDBC提供了一组API,使得开发者可以方便地通过Java代码执行SQL语句,实现数据的增删改查等操作。 此外,Java...

    JAVA模式的读书笔记

    Java模式是面向对象设计中的一种最佳实践集合,它通过总结并提炼出在软件设计中反复出现的问题和解决方案,为开发者提供了可复用的设计方案。在Java编程中,遵循这些模式可以提高代码的可读性、可维护性和可扩展性。...

    韩顺平_java设计模式笔记

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

    Java设计模式笔记

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

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

    这份《java学习》笔记包含了多个核心主题,旨在帮助初学者和有经验的开发者深入理解和掌握Java技术。 1. **正则表达式(正则.md)**: 正则表达式在Java中用于文本匹配和搜索,是处理字符串的强大工具。Java提供了...

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

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

    Java设计模式学习笔记.pdf

    在学习Java设计模式时,掌握其概念、应用、优点和缺点非常重要。设计模式是软件开发中经常使用的一种通用解决方案模板,用于解决特定上下文中的常见问题。它们源于设计模式的研究,通常被认为是软件设计中的最佳实践...

    java学习笔记markdown

    11. **枚举与注解**:介绍Java中的枚举类型及其用法,以及注解的定义和应用,它们在现代Java开发中有着广泛的应用。 12. **Java 8及更高版本的新特性**:涵盖Lambda表达式、函数式编程、Stream API、日期时间API等...

    Java入门学习笔记

    "Java入门第三季学习笔记"可能涵盖了更多高级话题,如反射、注解、设计模式和Java库的使用。反射允许程序在运行时检查类、接口、字段和方法的信息,提供了更大的灵活性。注解是一种元数据,可以用来提供编译器或运行...

    狂神说JAVA的所有笔记.zip

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

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

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

    java笔记 java笔记

    3. **加载与执行**:通过Java虚拟机(JVM)加载字节码并解释执行。 #### 1.3 Java目录结构 Java开发环境通常包括以下几个关键目录: - **src**:存放源代码。 - **bin**:存放编译后的字节码文件。 - **lib**:存放...

    李兴华java笔记

    这份笔记集合了他在教学和实践中积累的丰富经验,旨在帮助学习者掌握Java的核心概念、设计模式以及实战技巧。通过这份笔记,读者可以系统地学习Java语言,并逐步提升为一名熟练的Java开发者。 笔记内容涵盖了以下几...

Global site tag (gtag.js) - Google Analytics