Middle+
Дар бораи намунаҳои тарҳрезӣ, ки барои оптимизатсияи басомади иҷрои коди истифода мешаванд, нақл кунед.
sobes.tech AI
Ҷавоб аз AI
Барои оптимизатсияи басомади иҷрои коди, одатан моделҳои тарҳрезӣ истифода мешаванд, ки ба кам кардани хароҷотҳо, пешгирии ҳисобҳои такрорӣ ва идоракунии самараноки захираҳо равона шудаанд.
Моделҳои асосӣ:
-
Singleton
- Мӯътадил месозад, ки танҳо як нусхаи синф сохта мешавад. Барои дастрасӣ ба захираҳои умумӣ, мисли пайвастшавӣ ба базаи додаҳо ё кеш, ки аз сохтанҳои зиёд пешгирӣ мекунад, муфид аст.
<?php class Singleton { private static $instance = null; private function __construct() { /* ... */ } private function __clone() { /* ... */ } private function __wakeup() { /* ... */ } public static function getInstance(): self { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } } -
Registry
- Анбори марказӣ барои объектҳои умумӣ ва хизматрасониҳо. Имкон медиҳад, ки ба захираҳои қаблан сохташуда ё танзимшуда дастрасӣ пайдо кунед, бе ниёз ба инициализатсияи дубора.
<?php class Registry { private static $data = []; public static function set(string $key, $value): void { self::$data[$key] = $value; } public static function get(string $key) { return self::$data[$key] ?? null; } public static function has(string $key): bool { return isset(self::$data[$key]); } } -
Flyweight
- Идоракунии самараноки идора кардани шумораи зиёди объектҳои хурд бо рафторе монанд, бо тақсим кардани ҳолати онҳо. Ин ёдгирӣ ва вақтро барои сохтани объектҳо сарфа мекунад. Масалан, истифодаи объектҳои умумӣ барои намояндагии аломатҳо, рангҳо ва ғайра.
-
Proxy
- Меҳвар ё "муҳандис" барои дигар объект. Мутобиқ аст барои боркунии суст (Lazy Loading), вақте ки объект танҳо дар аввал ба он муроҷиат карда мешавад, ё барои кеши натиҷаҳои амалҳо.
-
Cache (ё Memoization - наметавон онро модел, балки техника номид)
- Натиҷаҳои иҷроиши функсияҳои гарон ё дархостҳоро нигоҳ медорад, то дар такрори даъват бо аргументҳои ҳамон натиҷаи захирашударо баргардонад, ба ҷои ҳисоб кардани дубора. Одатан дар доираи моделҳои дигар ё ҳамчун компоненти алоҳида амалӣ мешавад.
<?php function expensiveFunction($arg) { static $cache = []; // Cache оддӣ if (isset($cache[$arg])) { echo "Истифодаи cache барои $arg\n"; return $cache[$arg]; } echo "Ҳисоб кардан барои $arg\n"; // Имитацияи амали гарон sleep(1); $result = $arg * 2; $cache[$arg] = $result; return $result; } expensiveFunction(10); // Ҳисоб мешавад ва кеш мешавад expensiveFunction(10); // Истифодаи cache -
Object Pool
- Пулро аз объектҳои тайёр барои истифода нигоҳ медорад, ки метавонанд ба ҷои сохтани нав истифода шаванд. Муфид барои объектҳое, ки сохтани онҳо гарон аст, масалан, пайвастшавӣ ба базаи додаҳо.
-
Lazy Loading
- Қоидаи алоҳида, ки одатан бо Factory, Proxy ё моделҳои дигар амалӣ мешавад. Объект ё манбаъ танҳо вақте бор карда мешавад, ки воқеан зарур аст, ки борро кам кунад.
Ҳар яке аз ин моделҳо кӯмак мекунад, ки такрори нолозимро кам кунад, истифодаи захираҳоро самараноктар кунад ва дар натиҷа, суръат ва самаранокии иҷрои коди оптимизатсия шавад. Интихоби модел ба вазифа ва контексти мушаххас вобаста аст.