单例模式:
组合模式:
UML:
总结:
-
单元测试:JUnit集成,必须继承TestCase,实现setUp,tearDown方法,自己的单元测试方式命名用testXyz(),Junit会自动执行这些单元测试
-
模板方法模式:在基类中约定方法执行过程,在子类中实现各个步骤方法的具体实现,步骤方法形式上可以是抽象方法,具体的方法,钩子方法
-
策略模式: 定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换 。
-
组合模式(Composite):将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致.
主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。
优点: 1、高层模块调用简单。 2、节点自由增加。
缺点:在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。
使用场景:部分、整体场景,如树形菜单,文件、文件夹的管理。
-
装饰器模式:装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。
主要解决:为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。
优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。
缺点:多层装饰比较复杂。
使用场景: 1、扩展一个类的功能。 2、动态增加功能,动态撤销。
应用:HttpServletRequest/HttpServletRequestWrapper,Collections.synchronizedList(list),inputStream、OutputStream等
来源:oschina
链接:https://my.oschina.net/u/178368/blog/4321337