接口的作用——工厂设计模式

在面向对象编程中,最通常的方法是一个new操作符产生一个实例对象,new操作符就是用来构造对象实例的。

接口的作用(SimpleFactory .java)
范例:

//定义一个水果标准
interface Fruit{
	public void eat();
}
class Apple implements Fruit{

	@Override
	public void eat() {      //覆写抽象方法eat()
		System.out.println("吃苹果。");
	}
	
}
class Orange implements Fruit{

	@Override
	public void eat() {      //覆写抽象方法eat()
		System.out.println("吃橘子。"); 
	}
	
}
public class SimpleFactory {
	public static void main(String[] args) {
		Fruit f=new Apple();        //子类为接口示例化
		f.eat();
	}
}

在上例中,发现在主类(客户端)之中直接让一个具体的子类和接口绑定在一起,那么如果要修改使用的子类,对于程序而言,就意味着要修改客户端。所以此时程序之中就出现了接口和子类的耦合问题,为解决这一问题,使用工厂模式。

工厂模式(Factory.java)

interface Fruit{
	public void eat();
}
class Apple implements Fruit{

	@Override
	public void eat() {
		System.out.println("吃苹果。");
	}
	
}
class Orange implements Fruit{

	@Override
	public void eat() {
		System.out.println("吃橘子。");
	}
	
}
class Factory1{
	public static Fruit getInstance(String className) {
		if("apple".equals(className)) {
			return new Apple();
		}
		if("orange".equals(className)) {
			return new Orange();
		}
		return null;
	}
}
public class Factory {
	public static void main(String[] args) {
		Fruit f=Factory1.getInstance("orange"); //初始化参数
		f.eat();
	}
}

此时的程序,客户端没有和具体的子类耦合在一起,这样一来,如果再有更多的Fruit接口子类出现,只需要修改Factory类即可,即:所有的接口对象都通过Factory类取得。
在程序员自己开发的代码之中,只要是遇见了取得接口对象实例的操作,都应该采用工厂设计模式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值