面向对象程序的设计模式

  设计模式很难定义,通俗来说,就像是写作文的套路。程序员在程序设计总结了很多开发经验,就形成了设计模式。其实在有了框架之后,不会去开发完整的应用,设计模式的重要性降低了很多。

基本思想:1.将变化的和不变的部分分开,在修改和维护时只需要改动变化的部分。

具体方式:

  1.类继承是oop中的三大特点之一,可以实现代码复用,并且代码层次更清晰,但是继承会使类的耦合度变高,简单来说,一个类的改动可能会影响其他类,使代码的修改和维护变得困难。灵活性可以使用接口设计,通过继承接口,实现不同的行为,可以看到,代码的复用性降低了,于是又引入了在接口中的适配器。实现代码复用的其他方式为对象组合,将功能的实现委托(delegate)给其他对象。

2.多态:在向函数传递对象时,对象类型选择范围更广。不是针对具体类编程,扩展性更强。

3.很多现实生活中的行为都可以抽象成方法,当然,此时我们只是抽象思考,并不关心它们的具体实现方式。比如观察这模式。现实生活中的订阅报纸很像。那么事件类是怎么注册观察者的呢?其实很多gui的组件在处理用户交互的时候就用到了这种设计模式。这里还有个问题就是,谁主动订阅的?Observer持有Subject的对象引用,还是Subject对象持有Oberver对象的应用?在observer和observable中又存在push和pull的区别。就像报社发出了有新报纸的信号,报社推送给用户就是push,用户自己取就是pull,以该例子理解起来就不难了。

4.装饰器模式,通过组合对象,调用组合对象的代码,从而实现代码的复用。

5.工厂模式:对new进行封装,根据需要(参数)动态生成所需对象。

6.单例模式:通过类方法调用私有构造器,确保了只有一个对象。

原文地址:https://www.cnblogs.com/Robin008/p/9254228.html