浅谈设计模式

在最初认识设计模式的时候,一直以为是一种很高深的东西,是那些开发架构师所牛逼的地方,而且很多的源码中这些设计模式无处不在,比如Java源码、Android源码等。于是开始找设计模式方面的书籍来看,看了之后发现设计模式其实根本思想很简单,大部分的设计模式就是利用Java的一种多态性来进行的各种各样的设计,然后就会发现原来设计模式是一种这么好玩的东西。常用到的就是向上转型。所谓向上转型,意思就是对象即可以作为他本身的类型所使用,也可以作为他的基类类型所使用。而将某对象的引用视为对其基类的引用的做法就是向上转型。

这里简单的先说一种设计模式——策略模式。其所要做的就是定义一个strategy接口,在实现两个子类其中包含了已经实现的方法,然后定义一个角色类Context,声明一个带参的构造函数,构造函数参数声明为接口类,然后在最后的调用类中进行Strategy strategy = new ConcreteStrategy1(),这里就进行了向上转型,Context context = new Context(Strategy),context.doAnything(),这里就调用的是具体的ConcreteStrategy1的具体方法,实现了策略模式。

另一个要提到的模式就是适配器模式。我看到有人也把他叫做翻译模式,其实这个模式就是让接口不同但功能类似的两个类通过一个翻译类去干相同的事情。因为我们的原则是对修改封闭,对扩展开放,所以尽量不去修改原有已存在的接口类,而是扩展一个新的类。适配器模式存在两种,类适配器和对象适配器。其中,类适配器使用继承关系连接到Adaptee类,而对象适配器使用委派关系连接到Adaptee类。在对象适配器中,在Adapter类中,表面是是调用request方法,实际上是调用Adaptee的specificRequest方法。当然,很明显,Java设计本着少用继承的关系,因此我们也就要多使用对象适配器,而减少对类适配器的使用。

参考地址:适配器模式(Adapter):类适配器、对象适配器

猜你喜欢

转载自blog.csdn.net/fengchi863/article/details/80057167