Spring中的用到的设计模式大全
简单工厂模式
它不是一个真正的模式, 误认为是工厂模式
问: 把工厂定义成一个静态的方法,与创建一个工厂类的区别
答:利用静态方法,不需要使用创建对象的方法来实例化对象。但是,不能通过继承来改变创建方法的行为。
问:使用工厂类,创建对象有什么好处?似乎把问题搬到了另一个对象,问题依然存在
答:简单工厂可以有很多客户,不止这一个,它们对不同的客户的实现要求不一样。
特点:
不再使用new 创建具体的对象,不依赖具体;改用工厂对象创建的方法。
工厂方法模式
实现一个接口,泛指实现某个超类型(类或接口的某个方法)
依赖倒置原则
依赖抽象,不依赖具体类。高层组件与低层组件都依赖抽象(类或接口)
依赖倒置原则的方针
变量不可以持有具体类的引用
不要让类派生自具体类
不要覆盖基类中以实现的方法
抽象工厂模式
提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
工厂方法模式与抽象工厂 将特定实现解耦。
都是负责创建对象,工厂方法使用继承创建对象;抽象工厂使用对象组合。
