`
文章列表
弄着玩的,不看也罢。 在此类的帮助下,你不必关注细节就能将对象持久化到XML文件以及读取,删除,只有更新麻烦一点,你需要先删除再添加。 具体代码: XmlPersistence类: package com.sitinspring.persist; import java.io.File; import java.io.FileWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import or ...

装饰者模式

装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者模式提供了比集成更有弹性的体态方案。 1. 装饰者和被装饰对象有相同的超类型。 2. 可以用一个或多个装饰者包装一个对象。 3. 装饰者可以在所委托被装饰者的行为之前或之后,加上自己的行为,以达到特定的目的。 4. 对象可以在任何时候被装饰,所以可以在运行时动态的,不限量的用你喜欢的装饰者来装饰对象。 5. 装饰模式中使用继承的关键是想达到装饰者和被装饰对象的类型匹配,而不是获得其行为。 6. 装饰者一般对组件的客户是透明的,除非客户程序依赖于组件的具体类型。在实际项目中可以根据需要为装饰者添加新的行为,做到“半透明”装 ...

策略模式

抽象策略角色: 策略类,通常由一个接口或者抽象类实现。    具体策略角色:包装了相关的算法和行为。    环境角色:持有一个策略类的引用,最终给客户端调用。 优点:      1、 提供了一种替代继承的方法,而且既保持了继承的优点(代码重用)还比继承更灵活(算法独立,可以任意扩展)。      2、 避免程序中使用多重条件转移语句,使系统更灵活,并易于扩展。      3、 遵守大部分GRASP原则和常用设计原则,高内聚、低偶合。     缺点: 因为每个具体策略类都会产生一个新类,所以会增加系统需要维护的类的数量。 package com.jelly.Strategy; /** ...
  优点 :工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。    缺点 :由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和 ...
状态图是描述某一对象的状态转化的,它主要表现的是该对象的状态。从状态图中可以看出,该对象在接受了外界的某种刺激之后,会做出什么样的反应。描述的是一个对象的事情。可以说是对类图的一种补充,帮助开发者完善某一类。 活动图是描述系统在执行某一用例时的具体步骤的,它主要表现的是系统的动作。从活动图中可以看出,系统是如何一步一步的完成用例规约的,主要用于业务建模阶段。活动图描述的是整个系统的事情。可以说活动图是对用例图的一种细化,帮助开发者理解业务领域。 比如说: 学校用的学生选课系统。 在系统中,学生是一个对象(UML中的对象,不是编程语言中的对象),那么学生“未登录”“已登录”“未完成选课”“已 ...
一、状态图简介(Brief introduction)   状态图( Statechart Diagram )主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件( Event ),以及因状态转移而伴随的动作( Action )。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机( State Mac hine Diagram ),重点在与描述状态图的控制流。 如下图例子,状态机描述了门对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作( Action ) . ...

EA入门-4

11.2. 时序图的绘制 在已建立的“Package”上右键单击->New…->New Diagram…->在弹出的窗口左边选择“UML Behavioral”(如图25所示) 图-25 在“New Diagram”的右边“Diagram Types”窗口中选择“Sequence”,最后单击OK保存退出。 ...

EA入门-3

八.           文档的生成 8.1.Text 文档的生成 依次单击“Project->Documentation->Rich Text Format(RTF) Report…(如图19)”或直接使用快捷键“F8” 图-19 在“Output to file”后面单击,选择Text文档的生成路径,而后即可。 8.2.Html文档的生成 依次单击“Project->Documentation->HTML Report…(如图16)”或直接使用快捷键“Shift+F8”,弹出图20所示窗口; 图-20 ...

EA入门-2

四.           Class 模型 4.1. 创建“Class ”模型 依次点击“File->New Project->命名保存->在“Select model”中勾选“Class”(如图-5)       图-5 最后单击“确定”进入设计界面。     在设计界面的左边是工具箱(如图6) 图-6 Class Elements Package 包 Class 类 Interface 接 ...

EA入门-1

生命周期软件设计方案——Enterprise Architect是以目标为导向的软件系统。它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。   为整个团队提供高级的UML 2.0建模工具   EA为用户提供一个高性能、直观的工作界面,联合UML 2.0最新规范,为桌面电脑工作人员、开发和应用团队打造先进的软件建模方案。该产品不仅特性丰富,而且性价比极高,可以用来配备您的整个工作团队,包括分析人员、测试人员、项目经理、品质控制和部署人员等。   特性丰富系统 ...
十进制小数→→→→→二进制小数 方法:“乘2取整” 对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分. 如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位 如:0.25的二进制 0.25*2=0.5 取整是0 0.5*2=1.0    取整是1 即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位) 0.8125的二进制 0.8125*2=1.625   取整是1 0.625*2=1.25     取整是1 0.25*2=0.5       ...

关于反码

只有有符号的整数才有原码、反码和补码的!其他的类型一概没有。虽然我们也可以用二进制中最小的数去对应最小的负数,最大的也相对应,但是那样不科学,下面来说说科学的方法。还是说一个字节的整数,不过这次是有符号的啦,1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128-127。它在计算机中是怎么储存的呢?可以这样理解,用最高位表示符号位,如果是0表示正数,如果是1表示负数,剩下的7位用来储存数的绝对值的话,能表示27个数的绝对值,再考虑正负两种情况,27*2还是256个数。首先定义0在计算机中储存为00000000,对于正数我们依然可以像无符号数那样换算,从00000 ...
各种进制转换 计算机中常用的数的进制主要有:二进制、八进制、十六进制。 2进制,用两个阿拉伯数字:0、1; 8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7; 10进制,用十个阿拉伯数字:0到9; 16进制就是逢16进1,但 ...
利用request.getHeader("user-agent")获取客户端浏览器和操作系统信息 String Agent = request.getHeader("User-Agent"); StringTokenizer st = new StringTokenizer(Agent,";"); st.nextToken(); //得到用户的浏览器名 String userbrowser = st.nextToken(); //得到用户的操作系统名 String useros = st.nextToken(); 取得本机的信 ...
<context-param>的作用: web.xml的配置中<context-param>配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param> 2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文. 3.容器将<context-param>&l ...
Global site tag (gtag.js) - Google Analytics