Week3 总结
设计原则指导框架开发,尽量贴近和负责设计原则开发出来的框架,扩展性和移植性都比较好;及时需求变更也可方便扩展。而在实际框架开发过程中,软件开发界的大牛们根据遇到的很多问题,总结出来一些经常遇到的问题的通用解决方案,称之为模式即设计模式。
1、简单工厂模式
工厂内new具体的类和工厂内通过反射机制创建类可以实现工厂的功能,弊端是没法满足开闭原则,且反射机制有类型安全问题。两种方式当需要新增实现方式需要修改代码。
第三种是通过配置文件的方式指定特定方式,没指定则赋予默认;能满足开闭原则,但是还会存在类型安全问题;
另一种方式是Spring的依赖注入方式;
2、单例模式:只存在一个类的实例
单例模式实现的关键:静态类、构造函数private访问控制,限制类外构造、获取单例的实例public访问控制,需要考虑多线程安全使用synchronized。
3、适配器模式:使用类中的方法功能,面向接口编程,使用适配器模式包装类中各种方法;
方法有两种:基于类的适配器:继承类实现接口
基于对象的适配器:包含类成员变量实现接口
建议使用对象的适配器,因为基于类的适配器会违背里氏替换原则。
4、模板方法模式:基类中模板方法定义流程,流程中方法的实现有子类提供;
5、组合模式:接口中定义一个方法,实现类的对象形成树形结构,非叶子节点有children列表;有顶层节点调用接口方法则可以产生树形遍历所有对象的接口方法;
要点:树形结构遍历、非叶子节点有子节点列表成员、非叶子接口方法遍历子节点接口方法
6、装饰模式:
特点:构造函数参数是接口的不同实现,装饰者和被装饰者通过构造函数传递;
第二次课程老师讲解JUnit框架中使用的模式,单个模式看能理解,写也能够写;但巧妙的是这几种模式结合在一起,实现了JUnit中很多比较灵活的功能。我觉得不管是平时开发代码还是开发框架,还是要多思考和实践各种模式的灵活和结合使用。
评论