1.4面向对象编程

  • − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
  • 对象 − 是类的实例。

    1.5活字印刷,面向对象

  • 可维护

  • 可复用
  • 可扩展
  • 灵活性好

    1.6面向对象的好处

  • 通过封装、继承、多态把程序的耦合度降低。

  • 用设计模式使得程序更加的灵活,容易修改,并且易于复用。

封装、继承、多态(降低程序耦合度)

  • 封装 − 封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。
  • 继承 − 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
  • 多态 − 多态性是指相同的函数或方法可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

    1.10简单工厂模式

    ```php /**

    • Class Operation */ class Operation { protected $num_a;

      protected $num_b;

      public function setNumA($a) {

      1. $this->num_a = $a;

      }

      public function setNumB($b) {

      1. $this->num_b = $b;

      }

      public function getResult() {

      1. $result = 0;
      2. return $result;

      } }

/**

  • Class OperationAdd */ class OperationAdd extends Operation { public function getResult() {
    1. return $this->num_a + $this->num_b;
    } }

/**

  • Class OperationSub */ class OperationSub extends Operation { public function getResult() {
    1. return $this->num_a - $this->num_b;
    } }

/**

  • Class OperationFactory */ class OperationFactory { public static function createOperation($op) {
    1. switch ($op) {
    2. case '+':
    3. $op_obj = new OperationAdd();
    4. break;
    5. case '-':
    6. $op_obj = new OperationSub();
    7. break;
    8. }
    9. return $op_obj;
    } }

/**

  • Class Test */ class Test { public function testOperation() {
    1. $op_factory = OperationFactory::createOperation('+');
    2. $op_factory->setNumA(1);
    3. $op_factory->setNumB(2);
    4. return $op_factory->getResult();
    } } ```

    1.11UML类图

    第一章 代码无错就是优?——简单工厂模式 - 图1聚合(Aggregation)表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。
    合成(Composition,也有翻译成‘组合’的)是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。
    编程是一门技术,更加是一门艺术。