设计模式之策略模式(Duck设计模式)

转载于:http://quicker.iteye.com/blog/603935
Java代码   收藏代码
  1. package com.lwf.design.learn;  
  2.   
  3. public abstract class Duck  
  4.   
  5.     Flyable flyable;  
  6.     Quackable quackable;  
  7.       
  8.     public void swim(){  
  9.         System.out.println("duck is swim");  
  10.      
  11.     public abstract void display();  
  12.       
  13.     public void setFlayable(Flyable flyable){  
  14.         this.flyable flyable;  
  15.      
  16.       
  17.     public void setQuackable(Quackable quackable){  
  18.         this.quackable quackable;  
  19.      
  20.       
  21.     public void perFormFly(){  
  22.         flyable.fly();  
  23.      
  24.       
  25.     public void perFormQuack(){  
  26.         quackable.quack();  
  27.      
  28.       
  29.  

 

 

Java代码   收藏代码
  1. package com.lwf.design.learn;  
  2.   
  3. public class SubDuck extends Duck  
  4.   
  5.     public SubDuck(){  
  6.         flyable new NomorFly();  
  7.         quackable new GaQuack();  
  8.      
  9.     public void display(){  
  10.         System.out.println("subberDuck is display");  
  11.      
  12.       
  13.       
  14.     public static void main(String[] args)  
  15.         SubDuck new SubDuck();  
  16.         s.display();  
  17.         s.swim();  
  18.         s.perFormFly();  
  19.         s.perFormQuack();  
  20.           
  21.         s.setFlayable(new HighFly());  
  22.         s.perFormFly();  
  23.           
  24. //      Quackable quackable new GaQuack();  
  25. //      s.quackable quackable;  
  26. //      s.perFormQuack();  
  27.      
  28.  

 

 

Java代码   收藏代码
  1. package com.lwf.design.learn;  
  2.   
  3. public interface Flyable  
  4.   
  5.     public void fly();  
  6.  

 

 

Java代码   收藏代码
  1. package com.lwf.design.learn;  
  2.   
  3. public interface Quackable  
  4.     public void quack();  
  5.  

 

Java代码   收藏代码
  1. package com.lwf.design.learn;  
  2.   
  3. public class NomorFly implements Flyable  
  4.   
  5.     public void fly()  
  6.         System.out.println("Normal fly");  
  7.      
  8.   
  9.  

 

Java代码   收藏代码
  1. package com.lwf.design.learn;  
  2.   
  3. public class HighFly implements Flyable  
  4.   
  5.     public void fly()  
  6.         System.out.println("HighFly fly");  
  7.      
  8.   
  9.  

 

 

Java代码   收藏代码
  1. package com.lwf.design.learn;  
  2.   
  3. public class GaQuack implements Quackable  
  4.   
  5.     public void quack()  
  6.         System.out.println("GaQuack");  
  7.      
  8.   
  9.  

 

 

Java代码   收藏代码
  1. package com.lwf.design.learn;  
  2.   
  3. public class GuQuack implements Quackable  
  4.   
  5.     public void quack()  
  6.         System.out.println("GuQuack");  
  7.      
  8.   
  9.  

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值