zoukankan      html  css  js  c++  java
  • 设计模式导语一

    现今所有的软件中都应用了设计模式,模式除了可以解决很多实际问题外,还给开发者带来非常顺畅的心情,本人是Delphi Fans现在关于这门语言的资料越来越少了。在这里给大家推荐两本书,一本是《敏捷软件开发》和《Delphi模式编程.刘艺》。我的笔记来自这两本书.

    1.单一职责原则(SRP).一个类而言,应该公仅有一个引起它变化的原因,所为“职责”就是变化的原因,如果能够想到多于一个的动机去改变一个类,那个这  个类就具有多一个职责。

    2.   开放-封闭原则(OCP)  软件实体(类.模块.函数等)应该是可以扩展的,但是不可修改的。对于扩展是开发的,对于更改是封闭的。要点:关键是抽象,模块可以操作一个抽像体,其依赖于一个固定的抽象体,所以它对于更改可以是关闭的,同时通过从这个抽像体派生,也可以扩展此模块的行为。例:

            type

              IServer = interface //抽像接口
                 ['{3E91264F-BBC0-44DF-8272-BD8EA9B5846C}']
               procedure View(o: TObject);
             end;

            TServerDB=Class(IServer) //具体实现类

              procedure View(o:TObject);

            end;

           TClientUser=class //客户类

             private

               FSDB:IServer;

             public

               procedure SetDB;

          end;

           在TClientUser中,只是依赖IServer,IServer是一个固定不变的抽像体,其它模块或函数升级或优化都对引用些接口的类或过程等没有影响,反之也可以

          从此接口继承,重新定义亲的类或进行扩展!这种设计方法是遵守了OCP原则,OCP的核心是“抽象”,这个原则可以带来面向对对对象技术的灵活性,可重用性及维护性,同样这种原则也不能泛用,正确做法是对程序中呈现出频繁变化的部分做出抽像。拒绝不成熟的抽像和抽像本身一样重要。

           在delphi编程设计中,有两个非常重要的概念,抽象类和对象接口,这个两个都是程序设计时位于最顶层的公共部分。两者各有各的作用,抽象类给出描述方法,且可以给出方法的实现,接口侧只是描述方法没有具体实现,接口中的方法都是Public的。接口的好处是可以支持多重继承,对象接口可以通过计数器自动管理实例的生命周期,无需手动释放。

       


     

  • 相关阅读:
    VA对于开发QT是神器,VA自动补全QT
    64位下好神奇啊(增加了PatchGuard技术保护自己,SSDT是相对地址,参数通过寄存器与rdi来传递)
    贵在坚持
    VC程序查错之内存访问异常
    QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
    QTimer源码分析(以Windows下实现为例)
    Go语言的优点(oschina讨论)
    致诸位新程序员:来自Chuck Jazdzewski慈父般的忠告
    poj1483 It's not a Bug, It's a Feature!
    App应用与思考
  • 原文地址:https://www.cnblogs.com/carcode/p/2323147.html
Copyright © 2011-2022 走看看