Существует ли Perl OO, эквивалентный интерфейсу?

Это кажется, там существует , никакой путь , чтобы удалить или отключить “ Не Разблокировал от средства запуска ” в Quicklist Значка средства запуска.

, Но я нашел обходное решение , что сохраняет текущий порядок значков в Средстве запуска и - в случае, что значок был по ошибке удален из Средства запуска - восстановления порядок после каждого запуска, перезагрузки или входа в систему.

Шаг 1 : Сохраняют текущий порядок значков в Средстве запуска : Запустите Терминал (Ctrl+Alt+T) и введите команду gsettings get com.canonical.Unity.Launcher favorites > starter.icons (это сохранит порядок в файле starter.icons в Вашем корневом каталоге).

Шаг 2: Создайте сценарий в своем корневом каталоге посредством команды gedit ~/starter.icons_restore.sh и введите следующий текст:

#!/bin/bash
gsettings set com.canonical.Unity.Launcher favorites "$(cat starter.icons)"

Сохраняют файл и близкий Gedit.

Шаг 3: Сделайте исполняемый файл файла посредством Шага 4 команды chmod +x ~/starter.icons_restore.sh

: Сделайте новую запись в Приложениях Запуска : Klick на колесе в верхнем правом углу и выбрал Startup Applications... > Нажатие Добавляют > Имя : Значки средства запуска Восстановления> Команда : /home//starter.icons_restore.sh

С этого времени после каждого запуска, перезагрузки или входа в систему, порядок значков в средстве запуска будет восстановлен согласно информации в файле ~/starter.icons .

P.S. : Вместо Шага 4 Вы можете также создавать Настольный Начинающий с командой /home//starter.icons_restore.sh

PP.S : Хорошие новости: В случае Вы вручную отредактировали quicklist Значка средства запуска, эти , поправки будут сохранены , даже если значок будет (по ошибке) удален. Это означает, после восстановления quicklist все еще содержит все поправки.

9
задан Pistol 2 September 2009 в 11:24
поделиться

3 ответа

Вы можете создайте чистый виртуальный класс (или роль, если вы используете Moose или MooseX :: Declare ):

package Foo;

use strict;
use Carp;

sub new  { croak "new not implemented" };
sub do_x { croak "do_x not implemented" };
sub do_y { croak "do_y not implemented" };

Но принудительное применение будет во время выполнения. В общем, интерфейсы необходимы, потому что язык не поддерживает множественное наследование и строго типизирован. Perl поддерживает множественное наследование и (используя Moose) что-то вроде множественного наследования (но лучше), называемое ролями, и оно динамически типизируется. Строгая и динамическая типизация сводится к утиной типизации (если она крякает () как утка, ходит () как утка и плавает () как утка, то это утка). В Perl вы говорите:

if ($some_obj->can("quack") {
    $some_obj->quack;
} else {
    croak "incompatible class type: ", ref $some_obj;
}
17
ответ дан 4 December 2019 в 06:22
поделиться

Ну конечно! Class :: Interface .

Тем не менее, я бы сначала посмотрел на Moose. Это фантастика.

10
ответ дан 4 December 2019 в 06:22
поделиться

В традиционном Perl OO очень мало принудительно. У вас есть опция $ obj-> can ('methodname') для ввода того, что вы используете, но нет ничего похожего на интерфейс.

(Но посмотрите на Moose, роли там могут быть что вам нужно.)

11
ответ дан 4 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: