`
文章列表
cd D:\java\program d: java -Djava.ext.dirs=D:\java\program\lib zhang.data.main.AllExcelExport
迪米特法则(Law of Demeter)又叫做最少知识原则(Least Knowledge Principle),就是说,一个对象应当对其他对象有尽可能少的了解。 狭义的迪米特法则 如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如 ...
原文:http://www.blueidea.com/tech/web/2006/3231.asp
合成/聚合复用原则  就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。        另一个更简短的表述:要尽量使用合成/聚合,尽量不要使用继承。 合成和聚合的区别        合成和聚合均是关联的特殊种类。聚合用来表示“拥有”关系或者整体与部分的关系;而合成则用来表示一种强得多的“拥有”关系。在一个合成关系里,部分和整体的生命周期是一样的。一个合成的新的对象完全拥有对其组成部分的支配权,包括它们的创建和销毁等。使用程序语言的术语来讲,组合而成的新对象对组成部分的内存分配、内存释放有绝对的责任。 合成/聚合复用的好处: 1、 ...
接口隔离原则(Interface Segregation Principle)讲的是:使用多个专门的接口比使用单一的总接口要好。 角色的合理划分     将接口理解为一个类所提供的所有方法的特征集合,也就是一种在逻辑上才存在的概念。这样的话,接口的划分就直接带来类型的划分。     一个接口相当于剧本中的一种角色,而此角色在一个舞台上由哪一个演员来演则相当于接口的实现。因此,一个接口应当简单地代表一个角色,而不是多个角色。如果系统涉及到多个角色的话,那么每一个角色都应当由一个特定的接口代表。 定制服务      将接口理解成为侠义的java接口,这样一来,接口隔离原则讲的就是为同一个角色提供宽、 ...
依赖倒转原则讲的是:要依赖于抽象,不要依赖于具体。 从复用的角度来看,高层次的模块是设计者应当服用的。但是在传统的过程性的设计中,复用却侧重于具体层次模块的复用,比如算法的复用、数据结构的复用等,都不可避免是具体层次模块里的复用。较高层次的结构依赖于较低层次的结构,较低层次的结构又进一步依赖于更低层次的结构,如此继续,直到依赖于每一行的代码。较低层次上的修改,会造成较高层次的修改,直到高层次逻辑的修改。 依赖倒转原则(Dependence Inversion Principle)的表述是: 抽象不应当依赖于细节,细节应当依赖于抽象。(Abstractions should not de ...
里氏代换原则 如果对每一个类型为T1的对象O1,都有类型为T2的对象O2,使得程序P的所有对象O1被替换成O2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。 里氏替换原则是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不会受到影响时,基类才能真正的被复用,而衍生类也才能够在基类的基础上增加新的行为。 里氏代换原则讲的是基类与子类的关系。 在设计模式中的应用: 1、策略模式。 2、合成模式。 3、代理模式。 一般而言,如果有两个具体类A和B有继承关系,那么一个最简单的修改方案是建立一个抽象类C,然后让类A和类B成为抽象类C的子类。
    在java语言里,类有两种:一种是具体类,另一种是抽象类。具体类可以实例化,抽象类不可以实例化。    抽象类的用途     具体类不是用来抽象的,只要有可能就不要从具体类继承。 抽象类应该更多的拥有共同的代码      一个典型的例子就是策略模式。在策略模式中,抽象策略的角色的分量越重越好,也就是多尽可能的将公用的方法移到抽象策略角色中。 抽象类应该拥有尽可能少的数据 正确使用继承      在java语言里,继承关系可以分为2中:一种是类对接口的实现,称做接口继承;另一种是类对类的继承,称做实现继承。 使用继承关系:      1、子类是超类的一个特殊类,而不是超类的一个 ...
   一个方法的特征仅包括方法的名字、参数的数目和种类,而不包括方法的返回类型、参量的名字以及所抛出的异常。    接口和类的最重要区别是,接口仅仅描述方法的特性(Signature),而不给出方法的实现;而类不仅给出方法的特征,而且给出方法的实现。因此,接口把方法的特征和方法的实现分割开来。这种分割,体现在接口常常代表一个角色(role),它包括与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色可以由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求有任何其他的共同之处。 接口是对可插入性的保证。1、关联的可插入性。2、调用的可插入性。 接口常见的用 ...
开闭原则指的是一个软件实体应该对扩展开放,对修改关闭。 Software entities should be open for extension,but closed for modification. 满足“开-闭原则”的设计可以给软件体统2个无可比拟的优越性 1、通过扩展已有的软件系统,可以提供新的行为,以满足软件的新需求,是变化中的软件系统有一定的适应性和灵活性。 2、已有的软件模块,特别是最重要的抽象层模块不能修改,这就使变化中的软件系统有一定的稳定性和延续性。 对可变性的封装原则 (1)可变性不应散落到代码的不同角落里,而应该封装到一个对象里。同一可变性的不同表现意味同一继承等级结 ...
设计的目标 一个好的系统应该有如下性质:可扩展性(Extensibility)、灵活性(Flexibility)、可插入性(Pluggability)。 设计原则有哪些 1、“开-闭”原则(Open-Closed Principle,OCP) 2、里氏代换原则(Liskov Substitution Principle,LSP) 3、依赖倒转原则(Dependency Inversion Principle,DIP) 4、接口隔离原则(Interface Segregation Principle,ISP) 5、组合/聚合复用原则(Composition/Aggregation Princip ...
问题描述: 服务器端数据---》jsp页面。 jsp 代码 <%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <c:out value="${test}"/> ,查看输出的源码,冒号总变成&#034;  解决办法:     修改 ...
对一个软件而言,UML具有以下重要功能:可视化(Visualizing)功能,说明(Specifying)功能、建造(Constructing)功能和建文档(Documenting)功能。 UML包括以下的图: 1、使用案例图(Use case diagrams) 2、类图(Class diagrams) 3、序列图(Sequence diagrams) 4、合作图(Collaboration diagrams) 5、状态图(Statechart diagrams) 6、活动图(Activity diagrams) 7、构件图(Component diagrams) 8、部署图(Deployme ...
http://www.cublog.cn/u3/103360/showart_2043375.html linux svn 配置 2009-08-19 11:02 -------------vi 乱码----------------------- vi .bashrc 加入下面 export LANG=en_US ----------------安装软件----------------------------- 1.安装apr cd apr ./configure --prefix=/usr/local/apr make make install 2.安装apr-util cd ap ...
<script> function tabFlexSwitch(source,id) { if (source == 'kxx') { var idArray = new Array("shijian", "jihua", "diyu"); changTab(id, source, idArray); } } function changTab(id, source, idArray) { for (var i = 0; i < idArray.length; i++) { ...
Global site tag (gtag.js) - Google Analytics