策论模式

本文介绍了一种策略模式的实现方式,通过将行为封装在独立的类中,使主体类能够根据需要选择不同的行为策略。文章展示了如何在Java中定义策略接口和具体策略类,以及如何在主体类中动态地设置和调用这些策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

										策论模式
	下面是简单的策论模式exp
//此包为策略模式简单实验

/*    设计原则
 * 			1)    将程序中不变的功能写在基类中,供子类继承使用,将个性的,多变的功能抽象为接口,面向接口编程而不是
 * 					面向实现编程
 */


public class Dark  {
 
	Fly fly;
	Sing sing;
	
	void setsing(Sing sing){
		this.sing = sing;
	}
	void showsing(){
		sing.sing();
	}
	 void setfly(Fly fly){
		 this.fly = fly ;
		 }
	 void showfly(){
		 fly.fly(); 
	 }
	public void display(){
		System.out.println("Dark display");
	}
}

public class SmallDark extends Dark {

}


public class BigDark extends Dark {

}


public interface Fly {
	 
		void fly(  );	
	
}

  
public class BigFly implements Fly{
	
	public void fly( ) {
		 
		System.out.println("BigFly");
	}
}
 

public class SmallFly implements Fly{

	 

	@Override
	public void fly( ) {
		// TODO Auto-generated method stub
		System.out.println("SmallFly");
	}
}

public interface Sing {
	void sing();
}


public class guagua_sing implements Sing {

	public void sing() {
			System.out.println("gigigi......");
	}

}


public class gaga_sing implements Sing {
	
	public void sing() {
		System.out.println("gagaga......");
	}

}

public class Test{
	
	public static void  main(String args[]){
		
	     Dark d1 = new SmallDark();
		 d1.setfly(new BigFly());
		 d1.showfly();
		 d1 = new BigDark();
		 d1.setfly(new SmallFly());
		 d1.showfly();
		 d1.setsing(new guagua_sing());
		 d1.showsing();
		 d1.setsing(new gaga_sing());
		 d1.showsing();
	}

}

 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值