zoukankan      html  css  js  c++  java
  • 设计模式和抽象类、方法

    一、设计模式

    1、什么叫设计模式

    所谓设计模式,就是一些解决问题的“常规做法”,是一种认为较好的经验总结。面对不同的问题,可能会有不同的解决办法,此时就可以称为不同的设计模式。

    2、工厂模式

    在实际应用中,我们总是需要去实例化很多很多的类——以得到对象。

    则:

      我们可以设计出一个“工厂”(其实就是类),该工厂的作用(任务)就是为人们“生产”各种对象。这种工厂通常只要指定类名,就可以据此获取一个该类的对象。

       

    3、单例模式

    应用中的某种需求:

      对于某些类,在使用它的时候,从头到尾(程序运行的开始到结束),都只需要一个对象,就可以完成所有任务。

    单例:

      某个类,只允许其“创建”出一个对象,即使去进行多次创建,也只能得到一个对象。

    $obj1 = new A();

    $obj2 = $obj1; //此时还是1个对象,$obj2只是最终指向了跟$obj1同样的对象

    $obj3 = new A(); //这时候才有了第二个对象。

       

      但其实在php语言中,一个对象还可以使用clone运算符进行克隆,则就也会“生成”新对象。

      因此,还需要在类中使用私有化措施来禁止克隆,最终,单例模式的实现如下:

       

    二、抽象类,抽象方法

    1、抽象类

      在正常定义类的前面,加上关键字:abstract,那就构成抽象类。

        abstract  class  类名{.....类的定义.....}

         

        可见,抽象类有什么用?

      抽象类可以用来规范一些类的共同特性,但又不能去对其进行实例化。

        怎么规范:继承它。

        也就是说,抽象类的使命是专门做“父类”:子类就继承了它的特性,这就是“规范作用”

    2、抽象方法:

    抽象方法是一个没有方法体(也不含大括号)的方法定义“头”而已。前面需要加上abstract

      比如:abstract  function  f1($x1, $y, $m) //注意,后面一定有分号。

    抽象方法有什么用?

      其实跟抽象类一样,配合抽象类,来实现对下级类的“行为规范”。即相当于要求下级类去完成该功能(动作),但自己是不做的。

       

    3、抽象类抽象方法细节关系描述

    (1)如果一个方法定义为抽象方法,则其所在的类必须定义为抽象类。

    (2)但,一个抽象类中,可以没有抽象方法——但通常意义不大。

    (3)子类继承自一个抽象类,则子类必须实现父类中的所有抽象方法,除非子类也继续作为抽象类

    (4)子类实现抽象父类的方法时,访问控制修饰符的范围不能降低,且方法的参数也须一致——其实这就是重写,所以要满足重写的要求。

     

     

  • 相关阅读:
    图书管理系统---基于form组件和modelform改造添加和编辑
    Keepalived和Heartbeat
    SCAN IP 解释
    Configure Active DataGuard and DG BROKER
    Oracle 11gR2
    我在管理工作中積累的九種最重要的領導力 (李開復)
    公募基金公司超融合基础架构与同城灾备建设实践
    Oracle 11g RAC for LINUX rhel 6.X silent install(静默安装)
    11gR2 静默安装RAC 集群和数据库软件
    Setting Up Oracle GoldenGate 12
  • 原文地址:https://www.cnblogs.com/wjglm/p/9764360.html
Copyright © 2011-2022 走看看