Правила аннулирования итераторов

Наследование выявляет отношение IS-A. Композиция выявляет связь HAS-A. Шаблон Statergy объясняет, что композиция должна использоваться в тех случаях, когда существуют семейства алгоритмов, определяющих конкретное поведение. Классический пример - тип утки, который реализует поведение мух.

public interface Flyable{
     public void fly();
}

public class Duck {
Flyable fly;

 public Duck(){
  fly=new BackwardFlying();
 }

}

Таким образом, мы можем иметь несколько классов которые реализуют полет, например:

public class BackwardFlying implements Flyable{
  public void fly(){
     Systemout.println("Flies backward ");
 }
}
 public class FastFlying implements Flyable{
  public void fly(){
     Systemout.println("Flies 100 miles/sec");
 }
}

Если бы для наследования у нас было бы два разных класса птиц, которые снова и снова реализуют функцию мух. Это наследование и состав совершенно разные.

494
задан P.W 6 April 2019 в 07:07
поделиться