------------------------------------------
Movable.as
------------------------------------------
package
{
 public interface Movable{
  function _start():void;
  function _pause():void;
  function _stop():void;  
 }
}
------------------------------------------
Plane.as
------------------------------------------
package{
 public class Plane implements Movable{
  public function _start():void{
   trace("plane_start");
  };
  public function _pause():void{
   trace("plane_pause");  
  };
  public function _stop():void{
   trace("plane_stop");
  };  
 }
}
------------------------------------------
Car.as
------------------------------------------
package{
 public class Car implements Movable{
  public function _start():void{
   trace("car_start");
  };
  public function _pause():void{
   trace("car_pause");  
  };
  public function _stop():void{
   trace("car_stop");
  };  
 }
}
------------------------------------------
test.fla
------------------------------------------
import Movable;
import Car;
var go1:Movable = new Car();
var go2:Movable = new Plane();
go1._start();
go2._start();
------------------------------------------
결과
------------------------------------------
car_start
plane_start
------------------------------------------
장점

var go1:Movable = getObject(); 로 구현하면...
go1._start(); 이런식으로 명명하였다면...

getObject()의 리턴값에 따라 _start()의 메소드가 비행기, 차의 오브젝트에 메소드가 될 수 있다.
그러므로 프로그래머 입장에서 볼때는 확장성이 그만큼 커진다고 볼 수 있다.


중요한 내용이므로 다시한번 봐야 할텐데... 맨날 뭐 절차적 코딩하다가 OOP형태의 프로그래밍 하려니깐 힘드네;;

'etc > old' 카테고리의 다른 글

Bitmap 간단 사용 예시  (0) 2008.04.30
Definition fl.controls:Button could not be found.  (0) 2008.04.28
Factory 공법  (1) 2008.04.24
[XOR 사용] 초간단 암호화 복호화  (0) 2008.04.24
GOP : Group of pictures  (0) 2008.04.23

+ Recent posts