I am new to magento development and i am using a custom mysql query in some places like in observer/plugin etc.

These codes are repeating for all these files. so i want to make a new re usable function/class and want to call this method instead of writing the same thing in all files.

I don't know even to create controller and all, could you please help me to create this?

                    $modelMaterials = $objectManager->create('Vendor\Module\Model\Grid');
                    $dataMaterials=$modelMaterials->getCollection()->addFieldToFilter('entity_id', array('in' => array($material_id)))->setPageSize(1)->setOrder('entity_id','DESC');;
                    if($dataMaterials->getSize()){
                         $materialsarr = $dataMaterials->getFirstItem();
                         $weight = $subject->getWeight();
                         $fineWeight = $data->getFineWeight();
                         $metalPrice = (double)$materialsarr->getAmount() * ((float)$weight + (float)$fineWeight);
                         $metalPrice += (double)$data->getSurcharge();
                         $metalValue = (double)$materialsarr->getAmount() * ((float)$weight + (float)$fineWeight);
                         $price = (double)$materialsarr->getAmount() * (double)$weight;
                         $tx_rates = (double)$materialsarr->getTax() / 100;
                         $tax = $tx_rates * (double)$metalPrice;
                         $specialPrice = $subject->getSpecialPrice();
                    }