接口有什么好处?用接口做一个打折功能
来源:互联网 发布:2016电信宽带提速软件 编辑:程序博客网 时间:2024/04/28 17:03
同一个目的,但是有多种实现方式,就可以使用接口来进行简便处理
如:
计算一个图形的面积,周长
1.圆形的是XXX计算
2.正方形的是XXXX2计算
下面是一个经典例子
//比如我们要做一个购书系统,购书后,需要进行打折,我们就来实现打折这一部分:
// 表示一本书class Book {
public String Name; // 书名
public Double Money; // 价格
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public Double getMoney() {
return Money;
}
public void setMoney(Double money) {
Money = money;
}
}
//书价打折接口(接口就像一个协议,你不用知道协议后面是什么,只需要知道它遵守了这个协 议),在这里,我们只知道这个接口会进行 打折计算
interface IBookMoneyComputer {
Double Compute(Book[] books, Double totalMoney); //计算书价 // 要计算价格的书目 // 书的总价格(打折前的)
}
//我们来实现两个打折器(构造两个类来实现IBookMoneyComputer接口)------------------
// 总价打折器,只要书总价超过500, 我们就给它减去100
class TotalMoneyComputer implements IBookMoneyComputer {
public Double Compute(Book[] books, Double totalMoney) {
if (totalMoney > 500)
return totalMoney - 100; return totalMoney;
}
}
// 书类别打折器,只要有一本书名为"DotNet",我们就给总价减去50
class BookTypeComputer implements IBookMoneyComputer {
public Double Compute(Book[] books, Double totalMoney) {
for(Book book : books){
if (book.Name == "DotNet")
return totalMoney - 50;
}
return totalMoney;
}
}
//----------------------------------------------------------------
class Class1 {
// 静态方法,接受一个book数组,和一个打折器,注意,我们这个参数是接口类型
static Double ComputeMoney(Book[] books, IBookMoneyComputer computer) {
//注意,这里的计算打折前的总价程序不需要进行抽象
Double totalMoney = 0.0;
for (Book book : books) {
totalMoney += book.Money;
}
//用接口类型进行打折,这样有很大的灵活性,可以随时更改打折策略
return computer.Compute(books, totalMoney);
}
/// 应用程序的主入口点。
static void Main(String[] args) {
//我们来购造三本书
Book book1 = new Book();
book1.Name = "aaa";
book1.Money = 200.0;
Book book2 = new Book();
book2.Name = "bbb";
book2.Money = 400.0;
Book book3 = new Book();
book3.Name = "DotNet";
book3.Money = 200.0;
//可以分别运行两种打折策略来进行打折
System.out.println(ComputeMoney(new Book[] { book1, book2, book3 }, new TotalMoneyComputer()));
System.out.println(ComputeMoney(new Book[] { book1, book2, book3 }, new BookTypeComputer()));
}
}
0 0
- 接口有什么好处?用接口做一个打折功能
- 120941138:使用接口有什么好处?
- 接口有什么用?
- 为什么要面向接口编程?有什么好处?
- 做业务员有什么好处?
- 做程序员有什么好处
- 接口(九)用接口和抽象类,与不用究竟究竟有什么区别或好处?
- 接口到底有什么用?
- 接口到底有什么用
- 接口到底有什么用
- 接口到底有什么用
- 用自己的电脑做服务器有什么好处
- 接口有什么优点
- 为什么要使用抽象类 接口编程以及有什么好处
- 在java中,接口定义为抽象的,有什么好处?
- C#的接口有什么用?
- C++中引用是用来做什么用的,有什么好处
- java中接口有什么作用?请创建一个接口(举例)
- 页面上显示图片 以流的方式获取
- 【ibokan】margin负值,一个秘密武器
- 01字串
- windows编译的库无法在其他机器上使用
- 程序员的奋斗史(十三)——我为什么不考研
- 接口有什么好处?用接口做一个打折功能
- 2014-03-03-上海科**公司面试
- ungetc()
- <dependencyManagement>的作用
- picturebox 中画完图后续的放大、缩小、平移处理求助
- 程序员的奋斗史(十四)——谈态度
- oracle 10g的隐含参数_complex_view_merging引发的性能问题
- Java多线程-工具篇-BlockingQueue
- 程序员的奋斗史(十五)——谈性格