java设计模式的学习(1)

<span style="font-size:18px;"><strong>----策略模式</strong></span><p><span style="font-size:18px;"><strong>    设计算法族,少用继承,多用组合,便于优化。</strong></span></p><pre name="code" class="java">

//<span style="color:#FF0000;">叫声算法族</span>
package voice;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public interface Voice
{
    void voice();
}package voice;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public class GoodVoice implements Voice
{
    @Override
    public void voice()
    {
        System.out.println("叫的动听");
    }
}
package voice;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public class BadVoice implements Voice
{
    @Override
    public void voice()
    {
        System.out.println("叫的难听");
    }
}
<pre name="code" class="java">
//<span style="color:#FF0000;">飞行算法族</span>

package fly;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public interface Fly
{
    void fly();
}
package fly;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public class GoodFly implements Fly
{
    @Override
    public void fly()
    {
        System.out.println("飞的不错");
    }
}
package fly;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public class BadFly implements Fly
{
    @Override
    public void fly()
    {
        System.out.println("飞的很差");
    }
}

package duck;

import fly.Fly;
import voice.Voice;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public abstract class Duck
{
    Fly fly;
    Voice voice;
    public Duck()
    {
    }

    public abstract void display();


    public void fly()
    {
        fly.fly();
    }
    public void voice()
    {
        voice.voice();
    }

}
package duck;

import fly.GoodFly;
import voice.GoodVoice;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public class BlackDuck extends Duck
{

    public BlackDuck()
    {
        fly = new GoodFly();
        voice = new GoodVoice();
    }



    @Override
    public void display()
    {
        System.out.println("黝黑的");
    }
}
package duck;

import fly.BadFly;
import voice.BadVoice;

/**
 * Created by Administrator on 2016/10/27 0027.
 */
public class WhiteDuck extends Duck
{
    public WhiteDuck()
    {
        fly = new BadFly();
        voice = new BadVoice();
    }



    @Override
    public void display()
    {
        System.out.println("黝黑的");
    }
}

 



package duck;/** * Created by Administrator on 2016/10/27 0027. */public class TestDuck{ public static void main(String[] args) { BlackDuck bd = new BlackDuck(); WhiteDuck wd = new WhiteDuck(); bd.display(); bd.voice(); bd.fly(); wd.display(); wd.voice(); wd.fly(); }}
 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值