`
jokermanager
  • 浏览: 140738 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
  当Java世界提供的可选择性框架平台越来越多时,我们可能被平台架构所深深困扰,而无暇顾及软件的真正核心:业务建模,其实,业务领域建模同样是一个比平台架构更复杂,更需要学习的新的领域。    相反,在实践中 ...
  板桥里人 http://www.jdon.com 2006/12/6(转载请保留)   多变且复杂的需求   如果没有多变的需求,也许就没有今天的面向对象软件,我们曾经试图通过需求管理、需求跟踪等等管理方式约束和减少需求频繁更 ...
    我们知道:一个软件从无到有需要经过如下几个阶段:分析、设计、编程、调试、部署和运行。    编程阶段我们通常使用Java/.NET这样面向对象语言工具,可以带来很多设计 ...
最近用到了,所以依然是转载 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动 等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要 差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快! 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些 ...
  一、引子   这是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使用到了继承关系。   继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相看”。   其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。合理的利用继承关系,还是能对你的系统设计 起到很好的作用的。而模板方法模式就是其中的一个使用范例。   二、定义与结构    GOF给模板方法(Template Method)模式定义一个操作中的算法的骨架,而将一些步骤延迟 ...
关键字: uml 读书笔记       通俗地讲,用例是文本形式的情节描述, 用以说明某参与者使用系统以实现某些目标。       注意:用例不是图形,而是文本。 用例初学者的常见错误就是注重于次要的UML用例图,而 ...
关键字: uml 读书笔记 定义:需求        需求(Requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件[JBR99] "Requirements are capabilities and conditions to which the system—and more broadly, the project—must conform". [JBR99]       UP(Unified Process)提出了一系列的最佳实践,其中之一就是需求管理 (requirement management)。需求管理不主张采用瀑布的观点 ...
关键字: uml 读书笔记 初始阶段是建立项目共同设想和基本范围的比较简短的起始步骤。是为在随后的细化阶段能够开始编程,他将包括对10%的用例进行分析、关键的非功能性需求的分析、业务案例创建和开发环境的准备。 用一句话来概括初始阶段: 预见项目的范围、设想和业务案例。 用一句话来概括初始阶段要解决的主要问题: 涉众是否就项目设想基本达成一致、项目是否值得研究进行认真研究。 简单的来说,从未来新系统的总体目的和可行性而言,项目的初期只进行足以形成合理判断的调查。并能够确定是否值得继续深入研究即可。而深入研究是细化阶段的工作。 ...
一,命令模式的实现: 命令模式里边一般都有以下几个角色:客户端,请求者,命令接口,命令实现,接受者, 下边是简单命令模式的实现代码实现:  1  public class Client{  2      public static void main(String[] args){  3         Receiver receiver = new Receiver();  4         Command commandOne = new ConcreteCommandOne(receiver);  5         Command commandTwo = new Concret ...
深入理解abstract class和inter   abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了 Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很 ...
ξ 3.1 软件系统的可维护性 ☆ 导致一个软件设计的可维护性较低,也就是说会随着性能要求的变化二“腐烂”的真正原因有四个:  ① 过于僵硬  加入一个新性能,不仅仅意味着建造一个独立的模块,而且因为这个新性能会波及 ...
ξ 4.1 什么是开闭原则 ☆ 开闭原则指的是一个软件实体应对对扩展开发,对修改关闭(Software entities should be open for extension, but closed for modification)。这个原则是说在设计一个模块的时候,应对使这个模块可以在不被修改的前提下被 ...
☆ 依赖倒转原则,要依赖于抽象,而不要依赖于具体实现。 ξ 8.3 依赖倒转原则 ☆ 三种耦合关系 ① 零耦合关系,如果两个类没有耦合关系,就称之为零耦合; ② 具体耦合,具体耦合发生在两个具体的类之间,经由一个类对另外一个具体类的直接引用造成的。 ③ 抽象耦合关系,抽象耦合关系发生在一个具体类和一个抽象类之间,使用两个必须发生关系的类之间存在有最大的灵活性。 ☆ 依赖倒转原则的另外一种表述是: 要针对接口编程,不要针对实现编程(Program to an interface, not an implementation)[GOF95]。同样,在处理类之间的耦合关系时,尽量使用抽象耦合的形式。 ...
1.开—闭原则(Open-Closed Principle, short for OCP)    该原则讲一个软件实体应当对扩展开放,对修改关闭。说的是在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。换言之,应当可以在不必修 改源代码的情况下改变这个模块的行为。实现开闭原则的关键是抽象化。在"开—闭"原则中,不允许修改的是抽象的类或者接口,允许扩展的是具体的实现类,抽 象类和接口在"开—闭"原则中扮演着极其重要的角色,在设计过程中既要预知可能变化的需求,又要预见所有可能已知的扩展。 2.里氏代换原则(LSP)    该原则严格表达为:如 ...
“is a”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。因此在用 Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。 “has a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系统是PC机的一个成员变量,根据这一成员变量的不同值,可以区分不同的PC机对象。 再比如张三和李四都是人,但他们的名字不一样,可以以此区分这两个具体的人。名字应该作为人的成员变量。如果将名字 ...
Global site tag (gtag.js) - Google Analytics