Я использовал шаблон "мост" на работе. Я программирую в C++, где это часто называют идиомой PIMPL (указатель на реализацию). Это похоже на это:
class A
{
public:
void foo()
{
pImpl->foo();
}
private:
Aimpl *pImpl;
};
class Aimpl
{
public:
void foo();
void bar();
};
В этом примере class A
содержит интерфейс, и class Aimpl
содержит реализацию.
Одно использование для этого шаблона должно представить только некоторых общедоступных членов класса реализации, но не других. В примере [только 113] можно назвать через открытый интерфейс A
, но не Aimpl::bar()
, Другое преимущество состоит в том, что можно определить Aimpl
в отдельном заголовочном файле, который не должен быть включен пользователями A
лет. Все, что необходимо сделать, использовать предописание Aimpl
, прежде чем A
будет определен, и переместите определения всех функций членства, ссылающихся pImpl
в .cpp файл. Это дает Вам способность сохранить Aimpl
заголовок частным, и уменьшить время компиляции.
Если вы запустите вышеперечисленное, как они есть, они будут работать одновременно.
Вот некоторый тестовый код:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$(function () {
$('#first').animate({ width: 200 }, 200);
$('#second').animate({ width: 600 }, 200);
});
</script>
<div id="first" style="border:1px solid black; height:50px; width:50px"></div>
<div id="second" style="border:1px solid black; height:50px; width:50px"></div>
Это будет выполняться одновременно, да. что, если вы хотите запустить две анимации для одного и того же элемента одновременно?
$(function () {
$('#first').animate({ width: '200px' }, 200);
$('#first').animate({ marginTop: '50px' }, 200);
});
В итоге анимации будут помещены в очередь. чтобы запустить их одновременно, вы должны использовать только одну строку.
$(function () {
$('#first').animate({ width: '200px', marginTop:'50px' }, 200);
});
Есть ли другой способ запустить две разные анимации для одного и того же элемента одновременно?