重复在课堂上多个函数中使用的代码块 - 如何应用DRY

I am using php, I have a class with 10 functions which share some repeating code like in the following

class A
{

    function car()
    {
        $t = [];
        ...

        ...
        $t .= 'CAR ' . implode(', ', $t);
        $this->someFunc($t);

        return $this;
     }


     function bike()
     {
        $t = [];
        ...

        ...
        $t .= 'BIKE ' . implode(', ', $t);
        $this->someFunc($t);

        return $this;
     }

     ...

}

Within the functions I placed "..." which represents code that differs in each function, however all 10 functions start with a empty local $t array, and end with $t being flattened and passed to another function, finally $this being returned.

How can we apply DRY to this, isit even possible? - I am thinking there maybe some way to write this once.

Regards

Okay, to apply the DRY, you have to answer this question: What differs all the time and what remains the same? Seeing at your code, it looks obvious that only CAR | BIKE do differ. So according to this, you can abstract your calls, like this:

class A
{
     protected function prepare($t, $type)
     {
        $t .= $type . implode(', ', $t);
        $this->addToString($t);

        return $this;
     }


     public function car()
     {
         $t = [];
         ....

         return $this->prepare($t, 'CAR');
     }

     public function bike()
     {
        $t = [];
        ...

        return $this->prepare($t, 'BIKE');
     }
}