• Java设计模式


    随笔

    摘要: 上学时,学的就是软件工程,自认学得还不错,那时学得最好的是C++和数据结构,每天要完成一堆老师留的各式各样的C++题目、算法题目,甚至是系统结构也要用c++来编程,期末还要完成一堆C++,软件工程,数据库的大作业、小作业。那时做起来最有成就感的就是完成一个周围很多人还没完成的算法题目,然后很得意的宣称,我编出来了^_^。完成得最久的就是软件工程的大作业:用J2EE做的一个图书管理系统,为了好看,还从网上下载了各种模板及javascript,然后一个个去试,一个同学说你们同组的和同学显摆你们做的大作业,于是觉得美得冒泡...完成的最快的是数据库的大作业,2天时间分析需求,画完E-R图,写好建数.阅读全文

    posted @ 2013-02-19 16:42 IT随笔 阅读(1827) | 评论 (22) 编辑 |

    摘要: 1. 加入calendar的准备工作我们使用了datepicker来加入calendar,要想使用datepicker,就需要引用jquery包,我们引用了jquery-1.5.1.min.js和jquery-ui.min.js,并引用jquery-ui.css加入样式。2. html<input type="text" readonly="readonly" id="datepicker"/>3. 本地化默认的jquery中只有英文, 没有中文,要本地话,需要引入新的文件jquery.ui.datepicker-zh-C阅读全文

    posted @ 2013-01-06 16:52 IT随笔 阅读(17) | 评论 (0) 编辑 |

    摘要: 几年前用过sqlserver,那时还觉得sqlserver的重装比oracle容易多了,每次重装oracle都得关闭oracle服务,卸载,删除文件夹,删除注册表,弄很久才能开始重新安装,而那时sqlserver只要直接重装就ok了。最近突然想做个考试的软件,就在自己机器上搭环境,因为之前安装了vs,带有简易的sqlserver,直接安装sqlserver2008居然一直失败,想着可能是需要删除之前的安装,于是卸载了原本的sqlserver,再次安装,成功,以为大功告成,没想到菜单里根本没有sqlserver数据库软件,重装了几次都无果。最后还是像以前安装oracle一样,卸载所有sqlser阅读全文

    posted @ 2013-01-06 16:16 IT随笔 阅读(19) | 评论 (0) 编辑 |

    摘要: 它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把他们放在外部数据结构,当需要使用时再将它们传递给享元。原理:享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State).一个内蕴状态是存储在享元对象内部的,并且不会随环境改变而有所不同.因此,一个享元可以具有内蕴状态并可以共享.一个外蕴状态是随环境改变而改变的,不可以共享状态.享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传到享元阅读全文

    posted @ 2012-12-20 11:02 IT随笔 阅读(129) | 评论 (0) 编辑 |

    摘要: 桥模式就是把抽象部分和它的实现部分分离开来,让两者可独立变化。这里的抽象部分指的是一个概念层次上的东西,它的实现部分指的是实现这个东西的(功能)部分,分离就把实现部分从它要实现的抽象部分独立出来,自我封装成对象。类图:组成:抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。修正抽象化(Refined Abstraction)角色:扩展抽象化角色,改变和修正父类对抽象化的定义。实现化(Implementor)角色:这个角色给出实现化角色的接口,但不给出具体的实现。必须指出的是,这个接口不一定和抽象化角色的接口定义相同,实际上,这两个接口可以非常不一样。具体实现阅读全文

    posted @ 2012-12-18 11:29 IT随笔 阅读(133) | 评论 (0) 编辑 |

    摘要: 将一类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。适用情况:使用的前提是:接口中规定了所有要实现的方法; 但一个要实现此接口的具体类,只用到了其中的几个方法,而其它的方法都是没有用的。实现方法:用一个抽象类实现已有的接口,并实现接口中所规定的所有方法,这些方法的实现可以都是空方法;原本要实现接口的子类,只实现上面的抽象类即可,并在其内部实现时,只对其感兴趣的方法进行实现;类图:角色:目标接口(Target): 客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。需要适配的类(Adaptee): 需要适配的类或适配者类。适阅读全文

    posted @ 2012-12-17 15:14 IT随笔 阅读(118) | 评论 (0) 编辑 |

    摘要: 装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点:1) 装饰对象和真实对象有相同的接口,这样客户端对象就可以和真实对象相同的方式和装饰对象交互。2)装饰对象包含一个真实对象的引用。3)装饰对象接受所有来自客户端的请求,它把这些请求转发给真实的对象。4)装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。类图:实例:public abstract class Drink{阅读全文

    posted @ 2012-12-17 14:06 IT随笔 阅读(121) | 评论 (0) 编辑 |

    摘要: 为另一个对象提供一个替身或占位符以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。类图:简单例子:有个接口Italk,people对象实现这个接口的talk()方法,有些想另外加入sing()方法,所以增加代理类talkProxy,实现两个方法.public interface ITalk{ public void talk(String msg);}public class People implements ITalk{ @Override public void talk(final String msg) { System.out.println(msg); }}pub.阅读全文

    posted @ 2012-12-14 19:00 IT随笔 阅读(131) | 评论 (0) 编辑 |

    摘要: 外观模式也许是我们每天都用到的,下面就稍微解释一下吧。外观模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面。它与Adapter和Proxy有类似之处,但是Proxy注重在为Client-Subject提供一个访问的中间层,Adapter注重对接口的转换与调整,而Facade所面对的往往是多个类或其他程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面。在遇到以下情况使用Facade模式:1. 当你要为一个复杂子系统提供一个简单接口时。2. 客户程序与抽象类的实现部分之间存在着很大的依赖阅读全文

    posted @ 2012-12-13 14:04 IT随笔 阅读(126) | 评论 (0) 编辑 |

    摘要: 组合模式又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解藕.组合模式可以优化处理递归或分级数据结构.有许多关于分级数据结构的例子,使得组合模式非常有用武之地.类图:组成部分:Component: 为参加组合的对象声明一个公共接口, 不管是组合还是叶结点.Leaf: 在组合中表示叶子结点对象,叶子结点没有子结点.Composite: 表示参加组合的有子对象的对象, 并给出树枝购件的行为.实例:public abstract class FolderComponent{ privat阅读全文

    posted @ 2012-12-13 11:57 IT随笔 阅读(125) | 评论 (0) 编辑 |

    摘要: 备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,属于行为模式。它是在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。类图:组成部分:发起人(Originator): 负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。发起人可以根据需要觉得备忘录存储自己的哪些内部状态。备忘录(Memento): 负责存储发起人对象的内部状态,并可以防止发起人以外的其他对象访问备忘录。备忘录有两个接口:管理者只能看到备忘录的窄接口,他只能将备忘录传递给其他对象。发起人却可以看阅读全文

    posted @ 2012-12-12 16:04 IT随笔 阅读(81) | 评论 (0) 编辑 |

    摘要: 解释器模式定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为模式。这里的语言意思是使用规定格式和语法的代码。应用环境:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。而且当文法简单、效率不是关键问题的时候效果最好。类图:抽象表达式角色(AbstractExpression): 声明一个抽象的解释操作,这个接口为所有具体表达式角色都要实现的.终结符表达式角色(TerminalExpression): 实现与文法中的元素相关联的解释操作,通常一个解释器模式中只有一阅读全文

    posted @ 2012-12-12 12:49 IT随笔 阅读(90) | 评论 (0) 编辑 |

    摘要: 访问者模式表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式的必备条件,而且这个结构对象必须存在遍历自身各个对象的方法,类似于Java中的Collection。访问者模式的目的是要把处理从数据结构中分离出来,如果系统有比较稳定的数据结构,又有易于变化的算法的话,使用访问者模式是个不错的选择,因为访问者模式使的算法操作的增加变得容易。相反,如果系统的数据结构不稳定,易于变化,则此系统就不适合使用访问者模式了。类图:访问者模式结构:访问者角色(Visitor): 为该对象结构中具体元素角色声明一个访问操作接阅读全文

    posted @ 2012-12-11 17:54 IT随笔 阅读(79) | 评论 (0) 编辑 |

    摘要: 工厂模式提供创建对象的接口。工厂模式分为三类:简单工厂模式(Simple Factory), 工厂方法模式(Factory Method)和抽象工厂模式(Abstract Factory).GOF在《设计模式〉中将工厂模式分为两类:工厂方法模式(Factory Method)和抽象工厂模式(Abstract Factory)。1. 简单工厂模式(Simple Factory)简单工厂模式又叫做静态工厂方法模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。该模式中包含的角色及职责:工厂(Creator)角色:它是简单工厂模阅读全文

    posted @ 2012-11-30 13:45 IT随笔 阅读(201) | 评论 (14) 编辑 |

  • 相关阅读:
    nightwatchjs --Expect element to not include text
    Iterating elements using NightWatchJS
    nightwatch 切换窗口
    nodejs读取配置文件
    spring 事务
    重载,重写,重构
    python 元组不变 列表可变
    WebStorm ES6 语法支持设置
    docker日志
    curl -O 下载文件
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2918111.html
Copyright © 2020-2023  润新知