zoukankan      html  css  js  c++  java
  • 面向对象程序的设计模式

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

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

    具体方式:

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

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

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

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

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

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

  • 相关阅读:
    像草一样,朝海生长
    那一次,我们属于彼此
    discuz !NT 3.5 论坛整合 .net 网站用户登录,退出
    oracel 10g 网络服务管理: 主机登录
    断章
    屏蔽浏览器左下角的js错误提示
    IE下载的文件自动加上中括号的Bug解决方案
    oracle下重置用户的所有序列
    循环追加表空间的数据文件的存储过程
    查询所有连接到ORACLE服务器的客户端IP地址的方法
  • 原文地址:https://www.cnblogs.com/Robin008/p/9254228.html
Copyright © 2011-2022 走看看