1.JDK中几个常用的设计模式
- 单例模式:对象被创建一次后,放入池中,用的时候从池中取。节省系统开销。
- 工厂模式:(简单工厂,抽象工厂)为了解耦,eg:SqlsessionFactory
- 观察者模式:对象A依赖着对象B,对象C,对象D…,当对象A改变时,对象B,对象C,对象D都会收到通知,并自动更新。
- 外观模式(不太了解):提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层的接口,让子系统更容易使用。
- 模板方法模式(不太了解):模板方法 使得子类可以在不改变算法结构的情况下,重新定义算法的步骤。
- 状态模式(不太了解):允许对象在内部状态改变时,改变这个对象的行为,看起来这个对象似乎修改了它所在的类一样。
2.什么是设计模式
它是各位程序员前辈们 研究出来的 用来解决特定问题的方法,是代码可用性的延伸。
3.什么是单例设计模式Singleton
创建一个比较耗内存的对象,让整合程序中都能去共享这个对象。
4.设计模式的6大原则
- 单一职责原则 (一个类如果承担的职责过多,耦合就越高)
- 开放封闭原则 (最先想到AOP)类,模块,方法等 可以被扩展加强, 但不要随意修改它们。
还有,把原来的类作为父类,扩展的方法们作为子类。 - 里式替换原则 (不太熟悉,感觉是多态的体现)
- 依赖倒置原则 springmvc 中 controller中注入的是service 而不是serviceImpl
- 迪米特原则 也是为了降低耦合度。反向代理和正向代理 算不算???
- 接口隔离原则 接口中的方法尽量少一点。为各个实现类建立专用的接口。