Sobes.tech
Junior — Middle

როგორ არის განხორციელებული 'შაბლონური მეთოდი' ნიმუში Spring-ის ჩარჩოში?

sobes.tech AI

პასუხი AI-სგან

Spring-ში "შაბლონური მეთოდი" ნიმუში განხორციელებულია აბსტრაქტული კლასებისა და hook-ების მეშვეობით, სადაც ძირითადი კლასი განსაზღვრავს ზოგად ალგორითმს, ხოლო ქვესკლასები ცალკეულ ნაბიჯებს გადახედავენ. მაგალითად, Spring Framework-ში არსებობს კლასი JdbcTemplate, რომელიც განსაზღვრავს JDBC-თან მუშაობის ნიმუშს: კავშირის გახსნა, სვეტების შესრულება, შედეგის დამუშავება და რესურსების დახურვა. მომხმარებელი მხოლოდ შედეგის დამუშავების ნაწილს (მაგალითად, RowMapper-ის მეშვეობით) გადახედავს.

სადავო გამარტივებული ნიმუშის მეთოდი:

public abstract class AbstractProcessor {
    public void process() {
        stepOne();
        stepTwo();
        stepThree();
    }

    protected abstract void stepOne();

    protected void stepTwo() {
        // საერთო ნაბიჯი, შეიძლება გადახედოს
        System.out.println("ნაგულისხმევი მეორე ნაბიჯი");
    }

    protected abstract void stepThree();
}

public class ConcreteProcessor extends AbstractProcessor {
    @Override
    protected void stepOne() {
        System.out.println("მოწესრიგებული ნაბიჯი ერთი");
    }

    @Override
    protected void stepThree() {
        System.out.println("მოწესრიგებული ნაბიჯი სამი");
    }
}

ამ გზით, Spring იყენებს ამ ნიმუშს განმეორებადი ოპერაციების ინკაფსულაციისა და გაფართოების წერტილების უზრუნველსაყოფად.