静态工厂:
这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
一般有几种实现方式
1.在接口中直接写出静态工厂方法,返回出不同的对象。
2.不用if/else,为每个对象写自己的静态工厂方法。但是这样,个人感觉会比较麻烦,不过有这方面风格的可以考虑一下
3.还可以将上述逻辑代码直接放在对应的方法类中,然后创建static method方法,不过这样以来,在未来扩展的时候可能会违反OCP原则。
装饰器
在原来基础上增加新的功能。允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。
实现步骤如下:
1.建立一个用于装饰的基础类COM,实现接口。其中所有的方法都委托到未装饰前的对象。
2.然后建立一个具体的装饰类COMMON,也实现该接口,并且继承自COM,增加rep,对需要变化的方法进行扩展,修改构造函数,增加参数。