这几天一直在讲设计模式,很累,不过还是收获了很多。设计模式是面向对象编程,同时也倾向于面向接口编程。设计模式解决的是编程思想的问题。所以我们的结构型的模式就是从结构上解决耦合问题。 这次的设计模式是按照结构型、创建型、行为型的顺序进行讲解讨论的。
我来总结一下我理解的结构型模式:外观模式,桥接模式,代理模式,享元模式。
结构模式:是从程序结构上解决模块之间的耦合问题。
facade:为子系统的一组接口提供一个一致的界面,简化接口。
外观模式:提供一个统一接口,对功能进行整合。这样通过接口把复杂的功能封装起来,在调用的时候很轻便。尤其是面对多个功能的时候。
特点:扩充方便。不用修改界面。
外观与策略:
外观针对的是结构,策略针对的是行为。外观是提共同以接口,针对的是封装复杂的功能。策略针对的是通过不同的算法解决问题。两个策略虽然非常相像,但是还是有很多的不同的。
桥接模式:实质,两个维度,排列组合。
桥接模式:两个维度,排列组合。
这解决的不同的搭配问题。比如点菜,需要凉热搭配,荤素搭配。所以我在这里就想到了,凉菜、热菜、荤菜、素菜的选择的问题。这样我们就有四个系列。在这里我们就只能用桥接模式。这里是与策略模式不同的地方。策略模式只能有一个维度,下面我们来看看策略模式的UML图:
和之前的桥接模式,会发现有显著的区别就是多了一个维度。
代理模式:代理保证和实际对象直接功能必须保证一致。
代理模式:前提是代理和真实对象有共同的方法。控制对目标对像的访问
有点:降低了真实对象和客户之间的耦合
享元模式:FlyWeight:共享资源,节省空间。
模板方法是行为型模式。通过UML图的比较,我们发现享元采用的是聚合,模板方法采用的是继承,两个有各自的使用范围,因此虽然相似,但是又有不同。
总结:今天我只是写了结构型模式中的:外观,代理,享元,桥接。通过结构方面的结构来实现代码程序的优化。
讲课的时候,真的是很累,各种不懂,曾经沧海啊,现在总结的时候感觉清晰很多。有时候并不是我们认为自己不懂,我们就真的不懂,认真去做,然后认真总结,我们就会收获很多。