Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Fatmarmelad
34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,613

Для чего созданы встроенные интерфейсы SplObserver и SplSubject?

22.01.2023, 16:34. Показов 891. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Вопрос - для чего создан встроенный интерфейс SplObserver и интерфейс SplSubject?

PHP
1
2
3
4
class Observer implements SplObserver
{}
class Subject implements SplSubject 
{}
Ниже простой пример классов, которые не имплементируют эти интерфейсы.


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Subject
{
    public $cipher;
    private $observers;
 
    public function __construct()
    {
        $this->observers = new SplObjectStorage();
    }
 
    public function attach(Observer $observer)
    {
        $this->observers->attach($observer);
    }
 
    public function detach(Observer $observer)
    {
        $this->observers->detach($observer);
    }
 
    public function notify()
    {
        foreach ($this->observers as $observer) {
            $observer->update($this);
        }
    }
 
    public function operation()
    {
        $this->cipher = rand(1, 10);
        echo "The figure changed to {$this->cipher}<br>";
        $this->notify();
    }
}
 
class Observer
{
    public function update(Subject $subject)
    {
        if ($subject->cipher > 5) {
            echo "It's more than five<br>";
        }
    }
}
 
$subject = new Subject();
$observer1 = new Observer();
$subject->attach($observer1);
$subject->operation();
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2023, 16:34
Ответы с готовыми решениями:

Встроенные интерфейсы IComparer и IEnumerable
1. Создайте массив объектов класса Товар. Реализируйте интерфейс IComparable для сравнения товаров по цене в методе CompareTo (). 2....

Для чего нужны интерфейсы
Люди уже около полу года проглю на C# и до сих пор не могу понять зачем нужны интерфейсы , где их вообще применять, вернее зачем знаю , но...

Для чего нужны интерфейсы
Здравствуйте. Почитал про интерфейсы в Visual Basic Net. В теории как это реализовывать понятно. Не могу понять для чего нужно создавать и...

1
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
22.01.2023, 20:39
Цитата Сообщение от Fatmarmelad Посмотреть сообщение
Вопрос - для чего создан встроенный интерфейс SplObserver и интерфейс SplSubject?
По доке - Интерфейс SplObserver используется совместно с SplSubject для реализации шаблона проектирования Наблюдатель (Observer).
Цитата Сообщение от Fatmarmelad Посмотреть сообщение
Ниже простой пример классов, которые не имплементируют эти интерфейсы.
Такие классы нельзя будет использовать там, где ожидаются SplSubject и SplObserver.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2023, 20:39
Помогаю со студенческими работами здесь

Для чего нужны интерфейсы?
Объясните на пальцах для чего нужны интерфейсы, как я понял они описывают методы и свойства, которые при наследовании классами должны были...

Для чего нужны интерфейсы?
Всем привет! Я посмотрел вокруг и тоже решил позадавать тупые вопросы. Например, я не могу понять, зачем нужны интерфейсы как таковые?...

Для чего нужны интерфейсы?
Добрый день! Почитал про интерфейсы. Появились вопросы. Во-первых, могут ли два и более класса принять участие в реализации одного...

Для чего нужны интерфейсы (не GUI)
Пожалуйста, объясните новичку, для чего нужны интерфейсы! Желательно с простыми примерами для понимания.

Для чего нужен абстрактные классы/интерфейсы?
Для чего нужны абстрактные классы/интерфейсы? Уже устал лазить по форумам, везде довольно размытые ответы. Я понимаю, что абстрактный класс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru