Fork me on GitHub
To the moon

A Coder,a Programmer,a Developer


  • Home

  • Tags

  • Categories

  • Archives

  • Search

UML(5)

Posted on 2018-11-11 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(5)

  • 为什么要对系统进行分析:
    1. 因为需求的特殊性;
    2. 用开发语言描述出来,更加正规且准确;
    3. 理解上的需要;
    4. 设计的需要。
  • 系统分析的过程:
    1. 分析结构;
    2. 分析用例;
    3. 分析 classes;
    4. 分析 packages;
Read more »

UML(4)

Posted on 2018-11-10 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(4)

引子

  • 为了让具有不同背景的角色(比如 user、customer 等)能够准确地获取需求,引入了类图、用例图、时序图、状态机图等等手段

UP建模

UP建模的四大阶段:

  1. 初始阶段:主要从此阶段拿到需求。搞定最关键部分的元素。占比10%。
  2. 详述阶段:填充细节,占比约80%。
  3. construction 阶段:补充剩下的。(不理会)
  4. transition 阶段:需求变更时进入此阶段。(不理会)
Read more »

UML(3)

Posted on 2018-11-10 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(3)

晦涩的概念

  • 做系统分析的目的:理解既有系统的功能、更好地满足未来的需求。
  • 做分析的几个阶段:收集相关信息;确定需求;为需求制定优先级;需求间的取舍;审核。
  • 做分析的技巧:从调查中发现本质;分析员应当了解业务细节和日常操作的流程;分析员要表现得像业务员一样尽可能地了解业务;分析员对问题要有独特的视角;从需求出发为业务过程建模。
  • 新系统需要具备什么特性?
    • 功能性需求(需要展示出必备的功能、需要建立在业务的基础上、需要有分析建模的记录文档);
    • 非功能性需求(技术性的环境、可用性、可靠性、安全性需求)。
Read more »

Spring IOC

Posted on 2018-11-06 | Edited on 2023-05-09 | In spring

Spring 源码学习之 IOC

一、源码说明

说明:本文分析的是 SpringFrameWork(5.0.5.RELEASE)IOC 部分的源码。

IOC:inversion of control,控制反转。应用程序将对象的控制权移交给第三方容器,并通过容器来管理这些被依赖的对象,完成了应用程序与被依赖对象的解耦。

Read more »

tiny-spring分析笔记(2)

Posted on 2018-11-02 | Edited on 2023-05-09 | In spring

tinySpring 分析笔记——IOC(2)

学习项目 Github 地址:code4craft/tiny-spring

上一篇博客:tiny-spring分析笔记(1)

step-4-config-beanfactory-with-xml

  • 在 step 3 中,“text”参数是直接写入 java 类中。
  • step 4 的目标就是将参数的配置信息写入 xml 文件中,然后代码通过读取 xml 文件获得参数。
  • 参数放入BeanDefinition中,然后用BeanFactory将它们一一注册(包括 setBean),最终实现 getBean。
Read more »

tiny-spring分析笔记(1)

Posted on 2018-11-02 | Edited on 2023-05-09 | In spring

tinySpring 分析笔记——IOC(1)

学习项目 Github 地址:code4craft/tiny-spring

step-1-container-register-and-get

使用 map 当作 bean 的容器,避免间接 new ,代替直接 new。

1.1 HelloWorldService.java

1
2
3
4
5
6
public class HelloWorldService {

public void helloWorld(){
System.out.println("Hello World!");
}
}
Read more »

UML(2)

Posted on 2018-11-01 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(2)

引子

统一建模语言 UML:

- 特点:可视化、实践性强、面向对象的工业标准、多视角多结论、
- 前提:软件系统能被视为相互关联对象的集合
- 误解:
    1. 被认为等同于过程或者理论
    2. 被认为等同于面向对象的分析与设计
    3. 被认为等同于设计指南
- 结构:
    1. 基础模块(Building blocks):物、表、关系等
    2. 相同的机理(Common mechanisms):要求、修饰、划分、可扩展性
    3. 体系(Architecture):用例、过程、实现、部署等
- 使用 UML 的优势:提高质量、更高效。

为什么建模?

- 从现实中抽象:获得必要的细节,过滤掉非必要的细节
- 有助于设计人员处理复杂问题:人类在处理复杂问题时存在局限性
- 集中在关键问题上
- 有助于理解需求、简捷设计、稳定系统的提升

为什么面向对象?

- 更精准地反映现实
- 缩小现实与模型之间的语言鸿沟
- 定位现实的改变
  • 可以将现实建模成一系列相互关联的对象。
Read more »

UML(1)

Posted on 2018-10-31 | Edited on 2023-05-09 | In UML

面向对象系统分析与设计(1)

专有名词

  • 分析:建立模型,收集需求

    • 专业定义:探索问题和需求,而不是解决方案。涉及的词汇:需求、用例、约束。
  • 设计:模型的实现

    • 专业定义:对能够满足需求的解决方案的概念性的描述,而不是具体的实现。涉及的词汇:对象、结构、部署、UI。
  • 面向对象系统分析与设计:

    1. 面向对象分析:强调对问题相关的对象或者概念的描述;
    2. 面向对象设计:强调**对象的定义**,以及为了满足需求对象之间的进行的**合作**
      
  • 面向对象模型 OO 的作用:

    1. 便于找到解决关键问题的答案;
    2. 便于将现实世界的实体建模成软件对象,完成复杂管理;
Read more »

JVM(3)

Posted on 2018-09-30 | Edited on 2023-05-09 | In notes

JVM 学习资源

JVM 系列文章

以下图片参考上方链接

Read more »

JVM(2)

Posted on 2018-09-26 | Edited on 2023-05-09 | In notes

一、GC 背景知识

副标题:《深入理解 Java 虚拟机》读书笔记(2)

推荐阅读:面试必问之JVM篇

1.1 GC 背景

GC:garbage collection。
程序计数器、虚拟机栈、本地方法栈这三个区域随线程生灭,所以不需要过多考虑内存的回收问题。而 Java 堆和方法区则不同,不同之处在于:

  • 一个接口的多个实现类需要的内存可能不一样;
  • 一个方法的多个分支需要的内存可能不一样。

只有程序运行期间时才能知道会创建哪些对象,这部分内存分配是动态的,是垃圾收集器所关注的部分。

1.2 四种引用类型

  • 强引用,Strong Reference。类似Dog dog = new Dog();。
  • 软引用,Soft Reference。只有内存不足时,JVM 才会回收该对象。属于java.lang.ref.SoftReference,一般用来实现缓存(如图片缓存、网页缓存,有用但非必须)。
  • 弱引用,Weak Reference。当 JVM 进行 GC 时,无论内存充足与否,都会被回收的对象。属于java.lang.ref.WeakReference,一般用来在回调函数中防止内存泄漏。
  • 虚引用,Phantom Reference。仅用在,这个对象呗收集器回收时收到一个系统通知。
Read more »
1…101112…16

Harrison Lee / Email (harrisonli60@163.com)

It is never too late to learn a new skill, even a challenging one.

156 posts
24 categories
34 tags
© 2026 Harrison Lee / Email (harrisonli60@163.com)
Powered by Hexo v6.3.0
|
Theme – NexT.Mist v7.0.0
|