图解Java设计模式-导言

1.解析原型设计模式

1)请使用UML类图画出原型模式核心角色

2)写出深拷贝的两种方式的源码(重写clone方法实现深拷贝,使用序列化来实现深拷贝)

3)在Spring框架中哪里使用到原型模型,并对源码进行分析

4)Spring中原型bean的创建,就是原型模式的应用

5) 代码分析+Debug源码

2.解释器设计模式

1) 什么是解析器设计模式

2) 画出解析器设计模式的UML类图,分析设计模式中的各个角色是什么?

3)请说明Spring的框架中,哪里使用到了解释器设计模式,并做源码级别的分析

beans.xml
<bean id="id01" class="com.bean.Monster" scope="Prototype"></bean>

Test.java
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Object bean = applicationContext.getBean("id01")
System.out.println("bean" +bean)


@Override
public Object getBean(String name) throws BeansException{
	return doGetBean(name, null. null, false);
}

#在doGetBean方法中有一个
else if(fmbd.isPrototype()){
	Object prorotype = null;
	tyr{
		beforePrototypeCreation (beanName);
		prorotypeInstance = createBean(beanName)
	}
	finally{
		afterPrototypeCreation(beanName)
	}
}

设计模式的重要性

  • 1)软件工程中,设计模式是对软件设计中普通存在(反复出现)的各种问题,所提出的解决方案
  • 2)大厦 VS 简易房
  • 3)拿实际工作经历来说,当一个项目开发完后,如果客户提出增新功能,怎么办?
  • 4)如果项目开发完后,原来程序员离职,你接手维护该项目怎么办?(维护性[可读性,规范性])
  • 5) 目前程序员门槛越来越高,一线IT公司(大厂),都会问你实际项目中使用过什么设计模式,怎样使用的,解决了什么问题?
  • 6)设计模式在软件中哪里?面向对象(oo) 功能模块[设计模式+算法(数据结构)] => 框架[使用到多种设计模式]=》架构[服务器集群]
  • 7)如果想成为合格软件工程师,就需要花时间来研究设计模式

设计模式的目的

  • 代码重用性(相同功能的代码,不用 多次编写)
  • 可读性(编程规范性,便于其他程序员的阅读和理解)
  • 可扩展性(当需要增加新的功能,非常的方便,称为可维护性)
  • 可靠性(当我们增加新的功能后,对原来的功能没有影响)
  • 使程序呈现高内聚、低耦合的特性

设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计的精要"

设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么这样设计的依据)

设计模式常用的七大原则

  • 单一职责原则
  • 接口隔离原则
  • 依赖倒转(倒置)原则
  • 里氏替换原则
  • 开闭原则
  • 迪米特法则
  • 合成复用原则
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HCH996

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值