设计原则 之 开放封闭原则

本文介绍了设计原则中的开放封闭原则,强调了通过扩展而非修改原有代码来应对需求变化的重要性。通过鸟类和狗类的移动方法示例,阐述了如何通过抽象和多态避免对源代码的修改。此外,还探讨了在实际应用中如何遵循此原则以提高代码的可复用性和可维护性,并推荐了一些设计模式的学习资源。
摘要由CSDN通过智能技术生成

分析一波

开放封闭原则,它规定了软件设计和维护时应该遵守的一种规则,即对扩展开放、对修改关闭。

扩展和修改不难理解,扩展指的是对原有的结构进行拓展,增加新的类让其继承父类、实现接口,利用多态、继承等特性进而实现新的功能。而修改在这里指的是更改那些已经投入使用的类尤其是抽象类和接口,包括增删改类方法及其实现步骤或参数,还有类的属性等。

面对功能的实现与可能的增改。对扩展开放意味着,通过扩展代码、增加新的类进行实现是允许和推荐的;而对修改关闭意味着,要尽可能地避免对源代码的修改。

合在一起说,就是在设计与维护时应尽可能的通过扩展而非修改原有结构来实现新的功能。

为了达到可便于修改这一要求,抽象是必不可少的,一个恰到好处的抽象总可以囊括即将到来的变化,当需求变化来临时只需要针对具体的变化扩展一个抽象的具体实现类,由于多态的特性很好的解决问题,同时也避免对原有代码的修改。可以说,对扩展开放”的关键是”抽象”,而对象的多态则保证了这种扩展的开放性(更具体的说,应该是里氏替换原则)。

来个粟子

这里可以引用上一篇讲述里氏替换原则的例子来说明这个原则:

最初的需求:设计类表示动物鸟,具有移动方法,实例化鸟类对象并调用这个方法。

实现:

class Bird
{
   
	String name;
	Bird(String name){
   this.name = name;}
	public void move()
	{
   
		System.out.println(name + " is flying~~~");
	}
}
...
class Main
{
   
	public static void main(String[] args)
	{
   
		Bird swallow= new Bird("swallow");
		swallow.move();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值