设计模式学习
简单工厂模式
- 对于相似的事情封装成一个实体类
- 设计父类包含相似事情的共同属性,对于每件事情,用子类继承父类,并且更加需要重写父类的方法。
- 对于到底要实例化那个子类,用一个单独的类来创造实例(这就是工场)。
- 客户端和服务端分离,界面与业务逻辑分离
- 面向对象编程,类是为了进行封装,分类的基础是抽象,具有相同属性和功能的对象抽象的集合是类。
- springmvc框架的controller层就可以相当于一个工厂类。
策略模式
- 策略模式定义了算法家族,分别封装起来,让它们之间可以互相替换,算法的变化不会影响到使用算法的客户。
- 策略模式封装了变化,主要应用在完成一件事情,但是在不同时间,不同情况会运用到不同的业务规则的情况。
- 客户端负责选择使用那种算法,并转给策略模式context对象调用相应的算法。
单一职责原则(SRP)
- 定义:就一个类而言,应该仅有一个引起它变化的原因。
如果一个类承担过多的职责,就等于把这些职责藕合在一起,一个职责的变化可能会削减或者抑制这个类完成其他职责的能力。高耦合导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。
SpringMvc框架的思考
- Controller——控制器,用来拦截来自界面(客户端)发来的请求,并且将请求映射到相应的处理方法,经过处理将处理结果返回给指定页面。
Service——业务层,用来写具体的处理业务逻辑,由接口和实现组成,剥离业务层的目的就是在业务有修改的情况下,不用修改整套代码,仅仅修改对应的service实现即可。接口用来定义Controller具体可以调用什么方面,而方法是如何工作的,则是写在实现类里。