问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

Java 接口程序

发布网友 发布时间:2022-04-27 02:41

我来回答

2个回答

热心网友 时间:2022-06-24 23:22

你这个命题是典型的策略模式(设计模式中的一种)

不同的交通工具就是每一个装在“锦囊”(接口)中的“锦囊妙计”(策略)

你可以搜索一下关键字“策略模式”

也可你看一下我这个故事:
刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,
嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子
的。
先说这个场景中的要素:三个妙计,一个锦囊,一个赵云,妙计是小亮同志给的,妙计是放置在锦囊
里,俗称就是锦囊妙计嘛,那赵云就是一个干活的人,从锦囊中取出妙计,执行,然后获胜,用JAVA 程序
怎么表现这个呢?

计是同一类型的东东,那咱就写个接口:
package com.cbf4life.strategy;
/**
* @author cbf4Life cbf4life@126.com
* I'm glad to share my knowledge with you all.
* 首先定一个策略接口,这是诸葛亮老人家给赵云的三个锦囊妙计的接口
*
*/
public interface IStrategy {
//每个锦囊妙计都是一个可执行的算法
public void operate();
}
您的设计模式
第 5 页
然后再写三个实现类,有三个妙计嘛:
package com.cbf4life.strategy;
/**
* @author cbf4Life cbf4life@126.com
* I'm glad to share my knowledge with you all.
* 找乔国老帮忙,使孙权不能杀刘备
*/
public class BackDoor implements IStrategy {
public void operate() {
System.out.println("找乔国老帮忙,让吴国太给孙权施加压力");
}
}
package com.cbf4life.strategy;
/**
* @author cbf4Life cbf4life@126.com
* I'm glad to share my knowledge with you all.
* 求吴国太开个绿灯
*/
public class GivenGreenLight implements IStrategy {
public void operate() {
System.out.println("求吴国太开个绿灯,放行!");
}
}
package com.cbf4life.strategy;
/**
* @author cbf4Life cbf4life@126.com
* I'm glad to share my knowledge with you all.
* 孙夫人断后,挡住追兵
*/
public class BlockEnemy implements IStrategy {
public void operate() {
您的设计模式
第 6 页
System.out.println("孙夫人断后,挡住追兵");
}
}
好了,大家看看,三个妙计是有了,那需要有个地方放这些妙计呀,放锦囊呀:
package com.cbf4life.strategy;
/**
* @author cbf4Life cbf4life@126.com
* I'm glad to share my knowledge with you all.
* 计谋有了,那还要有锦囊
*/
public class Context {
//构造函数,你要使用那个妙计
private IStrategy straegy;
public Context(IStrategy strategy){
this.straegy = strategy;
}
//使用计谋了,看我出招了
public void operate(){
this.straegy.operate();
}
}
然后就是赵云雄赳赳的揣着三个锦囊,拉着已步入老年行列的、还想着娶纯情少女的、色迷迷的刘老
爷子去入赘了,嗨,还别说,小亮的三个妙计还真是不错,瞅瞅:
package com.cbf4life.strategy;
/**
* @author cbf4Life cbf4life@126.com
* I'm glad to share my knowledge with you all.
*/
public class ZhaoYun {
/**
* 赵云出场了,他根据诸葛亮给他的交代,依次拆开妙计
*/
public static void main(String[] args) {
Context context;
您的设计模式
第 7 页
//刚刚到吴国的时候拆第一个
System.out.println("-----------刚刚到吴国的时候拆第一个-------------");
context = new Context(new BackDoor()); //拿到妙计
context.operate(); //拆开执行
System.out.println("\n\n\n\n\n\n\n\n");
//刘备乐不思蜀了,拆第二个了
System.out.println("-----------刘备乐不思蜀了,拆第二个了-------------");
context = new Context(new GivenGreenLight());
context.operate(); //执行了第二个锦囊了
System.out.println("\n\n\n\n\n\n\n\n");
//孙权的小兵追了,咋办?拆第三个
System.out.println("-----------孙权的小兵追了,咋办?拆第三个
-------------");
context = new Context(new BlockEnemy());
context.operate(); //孙夫人退兵
System.out.println("\n\n\n\n\n\n\n\n");
/*
*问题来了:赵云实际不知道是那个策略呀,他只知道拆第一个锦囊,
*而不知道是BackDoor这个妙计,咋办? 似乎这个策略模式已经把计谋名称写出来了
*
* 错!BackDoor、GivenGreenLight、BlockEnemy只是一个代码,你写成first、second、
third,没人会说你错!
*
* 策略模式的好处就是:体现了高内聚低耦合的特性呀,缺点嘛,这个那个,我回去再查查
*/
}
}
就这三招,搞的周郎是“陪了夫人又折兵”呀!这就是策略模式,高内聚低耦合的特点也表现出来了,
还有一个就是扩展性,也就是OCP 原则,策略类可以继续增加下去,只要修改Context.java 就可以了,这
个不多说了,自己领会吧。

以上摘自网络,详情参考 http://cbf4life.66ip.com/设计模式.pdf
里面还有类图

热心网友 时间:2022-06-24 23:22

public interface CommonTime {

public int time(int a,int b,int cs);
}

public class BikeTime implements CommonTime {

public int time(int a, int b, int c) {

return a+b+c;
}

}

public class CarTime implements CommonTime {

public int time(int a, int b, int c) {

return a*b/c;
}

}

public class TimeTest {

public int getTime(CommonTime com,int a,int b,int c){
return com.time(a, b, c);
}

public static void main(String[] args) {

TimeTest tt=new TimeTest();
int rs=tt.getTime(new BikeTime(),10,5,1);
//传入4个参数 第一个是new CarTime() 的话结果是50 new BikeTime()是16
System.out.println(rs);
}

}

理解接口的概念就好了
主方只能接受String,命令行传参数我用的不多,不是很清楚
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
无水奶油对健康的影响是什么? 《米修斯之印》预约奖励介绍 蓝色星原旅谣在哪预约-游戏预约地址 阴阳师百闻牌taptap礼包怎么领_taptap礼包兑换码分享 猫之城抽卡怎么退出 猫之城测试资格怎么获得 内测名额申请教学 猫之城预约奖励有什么 预约奖励详细攻略 无人机怕什么干扰?解析无人机干扰的类型及应对措施 什么叫干扰三要素 观察动物日记越多越好 java中接口定义的变量和类定义的变量有什么区别,这个类实现这个接口 Java中 什么情况下使用接口?什么情况下使用抽象类?各自的优势是什么? 杭州有哪几家专门做IT培训、java培训、ocp培训的机构? java开发第五年,擅长Oracle数据库并且已经取得OCP证书,在西安月薪大概是多少? LINUX/OCP/JAVA 学习那个比较容易找工作呢? sun中的java和ocp证书是不是可以让其他人看, 请问Java考证书,是考OCJP还是OCP,哪个更好? 为什么有的润滑油会在高温下产生积碳? 长期食用高温油会有什么危害? 油高温碳化产生什么物质 植物油高温加热后会损失营养吗? 食用油和食盐在高温下会产生化学反应吗? 食用油反复加热对人体有害吗 油加热到多少度会产生有毒物质,此物质是什么??? 请问:为什么食用油反复加热会产生稠环芳烃等有害物质。我的意思是食用油是酯,它可以仅凭加热就生成烃吗 油高温多长时间有毒 油脂在高温下会产生哪些有害物质 做饭的油烧的温度过高的危害? 油在高温的时候真的会产生化合物吗? 党的基本知识包括哪些内容 面向对象 设计类 考虑哪些问题 Hadoop学习的前提条件和步骤以及学习资源 linux下启动oracle监听时报错 手机进油了怎么清理 谁能帮忙在吾爱破解论坛下载一个 易好用ip更换大师破解版 谢谢!!! 谁能借我一个吾爱破解论坛的号,我会改ip的,我绝对不违规,不改密码,或者帮我下个东西 吾爱破解论坛上不了了,不知道为什么,可能被封IP了,我是很喜欢这个论坛的,哎,谁能给个邀请码啊? Linux下的Oracle11g 监听和数据库实例均启动了但是客户端无法连接_百 ... 吾爱破解27IP代理2.89专业版破解版能给发一份吗? 请问吾爱破解网站怎么进啊?一直都是域名解析错误! 谁给个吾爱破解注册邀请码 谢谢哈 190040883@qq.com 可用的 给100 在吾爱破解网站里面有一种可以破解圣才教育电子书的方法就是替换该电 fcst是什么意思 在生产管理上FCST是指什么 客户fcst是什么意思? 按照FCST备料会有什么风险? BGT, FCST, EST, PO, ACT是什么意思啊 fcst 是什么意思?是哪个单词的缩写吗?是不是订单的意思啊? FCST是什么意思及反义词 PO管理是做什么的
  • 焦点

最新推荐

猜你喜欢

热门推荐