SSM框架设计模式学习笔记(一)

关于设计模式

面向对象:

表现层:采用MVC模式。

           M称为模型,也就是实体类。用于数据的封装和数据的传输。

           V为视图,也就是GUI组件,用于数据的展示。

           C为控制,也就是事件,用于流程的控制

业务层:采用事务脚本模式。将一个业务中所有的操作封装成一个方法,同时保证方法中所有的数据库更新操作,即保证同时成
功或同时失败。避免部分成功部分失败引起的数据混乱操作

持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层
的目的就是,完成对象数据和关系数据的转换。

设计原则:

       业务层接口的设计原则:一个实体类一个接口,一次提交一个业务方法。业务方法的参数来自表现层。

       持久层接口的设计原则:一个实体类一个接口,一次数据库操作一个持久方法。

领域模型:

VO:视图对象,用于展示层视图状态对应的对象

DTO:数据传输对象,展示层与服务层之间的数据传输对象

DO:领域对象,即业务实体对象

PO:持久化对象,表示持久层的数据结构(数据库库表)

使用注解的方式定义Dao
优点

简单且被广泛接受。不用担心获取连接,关闭连接,异常处理等繁琐的事务

使用

使用@Repository 定义Dao

未结合Mybaties

DAO中编写Sql语句,通常写入静态变量

SSM框架

反射 如果不知道某个对象的确切类型,在运行状态中,能够知道这个类的所有属性和方法;能够调用它的任意一个方法和属性。一般来说,new一个对象以后再获取Class看起来会很愚蠢,很多时候使用的是真是路径来获取类。

动态代理 动态代理,事实上是一个加强的过程,需要代理的对象,在被代理后,可以在调用之前或之后增加其他方法。

如何代理:生成一个实例对象,然后用Proxy的newInstance方法对这个实例对象代理生成一个代理对象。动态代理一般比较少去手写,但用得其实非常多。在Spring项目中用的注解,例如依赖注入的@Bean、@Autowired,事务注解@Transactional等都有用到,换言之就是Srping的AOP(切面编程)。

看起来似乎是这样的:InterFace A ------> 动态代理类B获得类加载器,指明被代理类实现的接口 ----->创建委托类1 ----->生成代理类 ------调用代理类方法,会委托给inwoke(Object,Metho,object方法)

拦截器

生成拦截器,目的在于反射真实对象之前/之后执行自定义方法,是对原有对象的一种加强。

开发者只需要知道拦截器的作用即可编写拦截器了。此时可以让东岱代理的逻辑在开发者的视野中“消失”,简化动态代理的使用方法。

观察者模式

所有的观察者都可以触发对应动作,减少if语句,便于扩展于维护。
观察者需要添加,添加观察者收听新的请求,触发对应行为。

工厂模式和抽象工厂模式

工厂模式 所谓的工厂模式,就是一个入口,一个出口,中间是工厂,通过入口放入自己所需,在出口获得产品,满足需求,统一管理

抽象工厂 抽象工厂模式,是在工厂的基础上,处理变得更加复杂的情况,当一个工厂过于庞大,将一个工厂分割为多个工厂,有助于逻辑的处理及维护。同时不希望用户知道具体规则时,抽象工厂的概念出现,并能很好的达成需求。

抽象工厂示例: 用户/消费者 ------>抽象工厂------>工厂------->具体实现

建造者模式

复杂的构建分成若干步,一步步构建,将复杂的对象构建出来。

书本概念:将一个产品的内部表象(属性)与产品的生产过程分割开,从而使一个建造过程生成具有不同的内部表象的产品对象。

1:创建被代理的委托类,调用代理类方法,会委托给inwoke(Object,Metho,object方法)

仅用于学习整理,如有建议与意见,欢迎提出,亦可发送至邮箱[email protected]进行联系

你可能感兴趣的:(SSM框架设计模式学习笔记(一))