开放-封闭原则

开放-封闭原则(Open-Close Principle):对于扩展是开放的(Open for extension),对于更改是封闭的(Closed for modification)

怎么样才能做到Open for extension,Closed for modification?抽象编程,抽象出一个大概的需求,这个抽象是不可变的,但是它的实现却是自由发挥的,通过抽象来隔离以后发生的同类变化。

下面演示一个Demo:

public class Business {

	public void process(int choice) {
		
		switch(choice) {
		
			case 1 : 
				System.out.println("存款");
				break;
			case 2 :
				System.out.println("取款");
				break;
			case 3 :
				System.out.println("查询");
				break;
		}
	}
}

class StartUp {
	
	public static void main(String[] args) {
		
		Business business = new Business();
		business.process(1);
		business.process(2);
		business.process(3);
	}
}
这样的程序是可以执行,也没错,当然效率也不错,但是如果有些的业务增加了,你的这个类就修改了,破坏了OCP,正确的OCP是如下体现的:

public interface BusinessProcess {

	public void process();
}

class BusinessSave implements BusinessProcess {
	
	@Override
	public void process() {
		
		System.out.println("存款");
	}
}

class BusinessGet implements BusinessProcess {
	
	@Override
	public void process() {
		
		System.out.println("取款");
	}
}

class BusinessQuery implements BusinessProcess {

	@Override
	public void process() {
		
		System.out.println("查询");
	}
	
}

class Start_Up {
	
	public static void main(String[] args) {
		
		BusinessProcess bp;
		
		bp = new BusinessSave();
		bp.process();
		
		bp = new BusinessGet();
		bp.process();
		
		bp = new BusinessQuery();
		bp.process();
	}
}
定义了一个接口,这个接口是Closed for modification,而它的实现是Open for extension,符合了开放-封闭原则,这个原则是面向对象的核心所在,遵循这个原则可以使程序的维护性、扩展性、复用性大大的提高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值