10fbfc30aSopenharmony_ci/** 20fbfc30aSopenharmony_ci * @file Describe the file 30fbfc30aSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 40fbfc30aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 50fbfc30aSopenharmony_ci * you may not use this file except in compliance with the License. 60fbfc30aSopenharmony_ci * You may obtain a copy of the License at 70fbfc30aSopenharmony_ci * 80fbfc30aSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 90fbfc30aSopenharmony_ci * 100fbfc30aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 110fbfc30aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 120fbfc30aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130fbfc30aSopenharmony_ci * See the License for the specific language governing permissions and 140fbfc30aSopenharmony_ci * limitations under the License. 150fbfc30aSopenharmony_ci */ 160fbfc30aSopenharmony_ci 170fbfc30aSopenharmony_ciimport { Observer } from './Observer'; 180fbfc30aSopenharmony_ci 190fbfc30aSopenharmony_ci/** 200fbfc30aSopenharmony_ci * the interface of Observable 210fbfc30aSopenharmony_ci * 220fbfc30aSopenharmony_ci * @since 2022-09-09 230fbfc30aSopenharmony_ci */ 240fbfc30aSopenharmony_ciexport interface Observable { 250fbfc30aSopenharmony_ci /** 260fbfc30aSopenharmony_ci * 增加一个观察者 270fbfc30aSopenharmony_ci */ 280fbfc30aSopenharmony_ci addObserver(observer: Observer); 290fbfc30aSopenharmony_ci 300fbfc30aSopenharmony_ci /** 310fbfc30aSopenharmony_ci * 删除一个观察者 320fbfc30aSopenharmony_ci */ 330fbfc30aSopenharmony_ci removeObserver(observer: Observer); 340fbfc30aSopenharmony_ci 350fbfc30aSopenharmony_ci /** 360fbfc30aSopenharmony_ci * 被观察者状态发生改变后,通知订阅的所有观察者更新 370fbfc30aSopenharmony_ci */ 380fbfc30aSopenharmony_ci notifyChanges(message?: ObservableMessage); 390fbfc30aSopenharmony_ci} 400fbfc30aSopenharmony_ci 410fbfc30aSopenharmony_ciexport interface ObservableMessage {}