`

think pattern in java 笔记1

    博客分类:
  • j2se
阅读更多

模式概念:

模式是帮助你从别人的成功经验而不是从自己的失败经验哪里学习更多的东西!!!!!

什么是模式???

模式体现的是程序整体的结构构架!!!

模式即增加一个抽象层。无论什么时候,当你想把某些东西抽象出来的时候,实际上你是在分离特定的细节,这么做的一个有说服力的动机就是把变化的东西从那些不变的东西里分离出来.

设计模式的目的就是为了把代码里变化的那一部分分离出来.........

 

模式的分类:

1.创建型:如何创建一个对象,这通常包括分离对象的创建细节,这样的代码创建对象是就不依赖于创建对象的类型,而且加入新的对象,也不必改写代码!!!!!! Singleton,Factory Method ,Prototype,

2.结构型:设计出满足某些工程里特定约束的对象.他的工作原理是:一组对象和其他对象发生关联,当系统发生变化的时候,这些对象之间的关联关系保持不变!!!

3.行为型:指一个程序里处理一些列特定操作类型的对象.他们封装了一些列的操作!!!封装操作 observer , visitor, iterator , interpreting,

 

开发面临的挑战

UML过程,极限编程(xp)

 

 

简化(simplifying idoms)

信使(messager)

最普通的方法就是通过信使,他简单的将信息打包成一个对象,用于传输,而不是将这些信息碎片单独传输!!!!

集合型参数(collecting parameter)

collecting parameter 是messenger的兄弟,messagener传递参数给一个方法,而collecting parameter是从一个方法中获取信息.一般情况是collecting parmeter 传给多个方法(multipart method)的情况下!!!! collecting parameter必须支持通过某些方法来设置或者插入一些值,其collecting 参数是由他传递给的方法来修改!!!

对象数量(object quantity)

这里描述的两个模式都是可以单独用来控制对象的数量!!!

 

单件(singleton):提供一种方法,使得某一特定类型只存在一个,并且只能是一个对象:

单件的目标:防止用户可以以其他方式来创建对象,而且只能用你所提供的方式来创建对象.

类创建private私有,类类型final,通过公共方法返回类的引用对象.

 

对象池(object pool):没有限制只能创建一个对象.这种技术同样适用于创建固定数量的对象,当时这种情况下,你就可以得面对如何共享对象池里的对象这种问题.

 

对象去耦(object decoupling)

代理模式(proxy)和状态模式(state)分别提供了共我们使用的代理类(surrogate class);真正干活的那个累被代理类隐藏了.当我们调用代理类的一个方法时,代理类只是简单的调用实现类(implementing class)的方法.这两个模式的基本概念非常简单:代理类和实现类都由同一个基类派生 出来..

代理:替另外一个对象打点一切...

动态代理类; invocation handler 的实现应该是和动态创建的代理对象所提供的那些接口完全无关的.!!!1

状态模式:改变对象的行为;

一个用来改变类的(状态的)对象;

proxy模式的一般应用:

1.远程代理(remote proxy)为一个对象在不同的地址空间提供局部代理.

2.虚代理(virtual proxy ) 根据需求,在创建复杂对象时,使用"延时初始化"(lazy initialization)

3.保护代理(protection proxy)用于不希望客户端程序员完全控制被代理对象(proxied boject)的情况下;

4.智能代理(smart reference)当访问被代理对象时提供额外的动作时...

 

 

迭代器:分离算法和容器

用迭代器写的任何代码都与它所操作的数据结构相分离,这样一来,这些代码就更为通用和易于重用....

 

 

 

 

 

 

 

分解公用性(factoring commonality)

应用一次且只能有一次的原则产生最基本的模式,将变化的那部分代码放到方法里...

 

策略模式(stategy):运行时刻选择算法;

Policy模式:泛化的strategy模式:

用strategy模式处理一个方法(变化)的情况,而用policy模式处理多个方法...

 

模板模式:(template method):是应用程序框架的一个基本概念....

一个重要的特征:他是在基类里定义的,而且不能够被(派生类)更改,有时候他是私有方法(private method),但实际上他经常被声明为final;

 

 

封装创建(encapsulating creating)

强制使用一个通用工厂(common factory)来创建对象,而不允许创建对象的代码分散在整个系统里.----把创建集中在一起处理.....

 

简单工厂方法(simple factory method):

静态的factory()方法使得所用创建对象的操作都集中在一个地方完成,这也就是唯一需要修改代码的地方...

 

多态工厂(Polymorphic factories)

抽象工厂(abstract factory)模式:基本思想:在创建工厂对象的地方,有你来决定如何使用该工厂对象来创建那些对象!!!

 

 

特化创建(specialized creation)

原型模式(prototype)

通过克隆某个原型的实例来创建对象.

 

生成器(Builder)

builder模式的目的是为了将对象的构造与它的表示(representation)分离开来,这样对象据可以有多个不同的表示.对象构造的过程保持不变,但是最终创建的对象可以有不同的表示.

 

太多(too many )

享元模式(Flyweight):太多对象 62页

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Think In Java 学习笔记

    《Think In Java 学习笔记》 在Java编程语言中,对象是核心概念,它们代表着程序中的实体和行为。对象具有状态、行为和标识,是现实世界概念在软件中的映射。对象的状态由其内部的属性(或称数据成员)表示,行为则...

    Think in java学习笔记

    ### Think in Java 学习笔记知识点总结 #### 第1章:对象导论 - **一切皆为对象**:Java 中的几乎所有事物都是对象,对象通过发送消息的方式进行交互。 - **对象模型**:每个对象都有自己的存储空间,该空间由其他...

    王者归来之Thinking in java读书笔记

    《王者归来之Thinking in Java读书笔记》是对Bruce Eckel的经典之作《Thinking in Java》第四版的深度学习与总结。这本书是Java程序员的必备参考书,它深入浅出地阐述了Java语言的核心概念和技术,旨在帮助读者理解...

    Think in java读书笔记

    《Think in Java》读书笔记深度解析 一、构建器(Constructor) 构建器是Java中用于初始化新对象的一种特殊方法,其显著特征是没有返回值类型,包括`void`。这一点与普通方法形成鲜明对比,普通方法即便没有实际...

    think in java pattern

    which has evolved in Volume 2 of the second edition of Thinking in C++, and you’ll also find a chapter on patterns in the first edition of Thinking in Java (I took it out of the second edition ...

    Think Data Structures in Java azw3

    Think Data Structures in Java 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Think in Enterprise JAVA

    《Think in Enterprise JAVA》是基于Java企业级应用的深度解析,由知名编程专家Bruce Eckel撰写。这本书以其独特的视角和深入浅出的讲解方式,帮助读者理解并掌握在企业环境中使用Java进行开发的关键技术和思想。 ...

    Think in Pattern

    1. **代理模式(Proxy Pattern)**:本书通过`PoolManager.java`和`ConnectionPoolProxyDemo.java`的示例,展示了如何使用代理模式来控制对资源的访问,实现对象的远程访问或延迟加载等功能。 2. **池模式(Pool ...

    Think in Java3

    《Think in Java 3》是一本深受欢迎的Java编程指南,由Bruce Eckel撰写,它以其详尽的解释和丰富的示例闻名。这本书是许多Java初学者和专业开发者的重要参考资料,旨在帮助读者深入理解Java语言的核心概念和机制。...

    think-in-java

    《Think in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,中文版的出现使得更多中国程序员能够深入理解和掌握Java编程语言的核心概念。这本书以其深入浅出的讲解方式,深受程序员们的喜爱,是许多初学者...

    think in java source code

    《Think in Java》是Bruce Eckel的经典编程教材,它深入浅出地讲解了Java语言的基础概念和高级特性。源码整理则为读者提供了实践和学习的机会,帮助理解书中的示例和理论。以下是对《Think in Java》源码中一些重要...

    Think in java第三版代码

    1. `tij.jcsc`:这可能是《Think in Java》书中某个章节或习题的Java类文件,包含了具体的程序实现。类文件通常包含了方法和变量定义,是Java程序编译后的二进制格式。 2. `BangBean.mf`:这个文件名可能暗示它是一...

    Think in java 源码构建编译

    Think in java 源码构建编译

    think in java 英文第四版 高清完整PDF版

    java think in java (英文第四版)至今为止 被认为是java教程之中权威作品之一

    think in java 练习

    《Think in Java》是 Bruce Eckel 的经典著作,它深入浅出地讲解了Java编程语言的核心概念和技术。这本书强调理解编程思想,而不仅仅是学习语法。练习题是学习过程中的重要部分,它们帮助我们巩固理论知识,提升实际...

    Think in java(中文版)优质排版

    Think in Java(美)Bruce Eckel 著 陈昊鹏 译 引言 同人类任何语言一样,Java为我们提供了一种表达思想的方式。如操作得当,同其他方式相 比,随着问题变得愈大和愈复杂,这种表达方式的方便性和灵活性会显露无遗。 ...

    Think_In_Java..PDF

    Think_In_Java..PDF java 学习 计算机 程序 程序员 好书

    Think In Java 4(完美高清中文版).

    《Think In Java 4》是Java编程领域里一本极具影响力的著作,由资深程序员 Bruce Eckel 编著。这本书以其深入浅出的讲解方式和全面的知识覆盖而闻名,被誉为Java学习者的经典读物。中文版的完美高清版本为国内读者...

    think in java

    think in java think in java think in java think in java think in java think in java

Global site tag (gtag.js) - Google Analytics