概念:定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。

接口抽象的就是某种方法。

OO设计原则:1.面向接口编程  2.封装变化  3.多用组合,少用继承

 public class Practice14 {

     public static void main(String[] args) {
// TODO Auto-generated method stub
//用父类的引用指向子类对象
Bird d=new BigBird("小白");
d.setF(new Fly());
d.fly();
Bird d1=new BigBird("小黑");
d1.setF(new NoFly());
d1.fly();
}
}
//接口
interface FlyType{
void fly();
} class Fly implements FlyType{
public void fly(){
System.out.println("我会飞");
}
}
class NoFly implements FlyType{
public void fly(){
System.out.println("我不会飞");
}
}
//抽象类
abstract class Bird{
private String name;
private FlyType f;//组合
public Bird(String name){
this.name=name;
}
public FlyType getF() {
return f;
}
public void setF(FlyType f) {
this.f = f;
}
public void fly(){
System.out.println("我的名字叫"+name);
f.fly();
} } class BigBird extends Bird{
public BigBird(String name){
super(name);
}
}
class ModelBird extends Bird{
public ModelBird(String name){
super(name);
}
}

Java面向对象_接口应用——策略模式的更多相关文章

  1. java面向对象_接口

    java接口 interface,是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并不是类,编写接口的方式和类很相似,但 ...

  2. Java 面向对象_接口

    接口定义 接口就是多个类的公共规范 接口是一种引用数据类型, 最重要的内容是其中的抽象方法 定义格式: public interface MyInterfaceAbstract { // 这是一个抽象 ...

  3. Java面向对象_抽象类应用——模板方法模式

    概念:定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤. 去个例子分析一下这个概念: public cla ...

  4. Java面向对象:接口

    Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

  5. Java设计模式(18)策略模式(Strategy模式)

    Strategy是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类. Stratrgy应用比较广泛,比如,公司经营业务变化图,可能有两种实现方式,一个是线条曲线, ...

  6. JavaSE入门学习21:Java面向对象之接口(interface)(二)

    一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...

  7. Java之旅_面向对象_接口

    参考摘自:http://www.runoob.com/java/java-interfaces.html 接口(interface)在Java中是一个抽象类型,是抽象方法的集合. 一个类通过imple ...

  8. 为什么会有Comparable与Comparator接口? 引入策略模式

    目录 引入 Comparable接口的来龙去脉 引入Comparator接口 什么是策略模式? 使用了策略模式有什么好处? 引入 大家先考虑一个场景, 有一个整形数组, 我们希望通过调用一个工具类的排 ...

  9. 两种语言实现设计模式(C++和Java)(三:策略模式)

    策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化.也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异.用策略模式 ...

随机推荐

  1. 用Word编辑cnblogs的博文并发布

    听说可以用Word直接编辑文件发布博客,请教加研究,终于配置成功,先分享如下: 1. 在www.cnblogs.com上注册用户. 2. 打开Word,选择博客文章 3. 点击管理账户,新建或更改,按 ...

  2. html中插入css和js

    插入css: HTML周明华添加css样式的方法有很多种,常见的有一下几种:. 1.直接标签后添加如: <html> <div style="background:red; ...

  3. Code:template

    ylbtech-Code: 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech.cn ...

  4. JavaScript-Tool:template

    ylbtech-JavaScript-Tool: 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http:/ ...

  5. 在java web项目中编写自己的代码生成器

    在java web项目中编写自己的代码生成器

  6. WPF bmp和二进制转换

    bmp转二进制: FileStream fs = File.OpenRead(filepath); //filepath文件路径 Byte[] tempBuff = new Byte[fs.Lengt ...

  7. QTP连接数据库

    '注意:其中DSN=数据源名:UID=用户名:PWD=用户密码 Dim Conn Set Conn=CreateObject("ADODB.Connection") Const C ...

  8. DevExpress 显示进度条

    1.使用了DevExpress的WaitDialogForm WaitDialogForm waitDialogForm = null; new Thread((ThreadStart)delegat ...

  9. 使用showInputDialog显示输入框

    ------------------siwuxie095                             工程名:TestJOptionPane 包名:com.siwuxie095.showd ...

  10. layui table中使用checkbox

    第一步: 1. <div class="layui-form"> <table class="layui-hide" lay-filter=& ...