设计模式作业 — 3

本文探讨了面向对象设计的三个重要原则:单一职责原则,强调类应有单一职责;开闭原则,提倡软件实体对扩展开放,对修改关闭;以及里氏代换原则,确保子类型能够替换它们的基类型。文章通过案例分析了这些原则的重要性及如何遵循它们来提高代码的可维护性和可扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单一职责:

设计一个类实现:
摩托车在公路上跑
汽车在公路上跑
飞机在公路上跑
方法一:
分析: 1.在方式1的run方法中,违反 了单一职责原则
2.解决方案:根据交通工具运行 方法不同,分解成不同类

package org.yunan.design;

public class singleResponsibility {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Vehicle vehicle = new Vehicle();
		vehicle.run("摩托车");
		vehicle.run("汽车");
		vehicle.run("飞机");
	}
	
}

class Vehicle {
	public void run(String vehicle) {
		System.out.println(vehicle + " 在公路上跑 ");
	}
}

方式2:根据交通工具运行方法不同,分解成不同类

package org.yunan.design;

public class singleResponsibility2 {
	public static void main(String[] args) {
		RoadVehicle roadVehicle = new RoadVehicle();
		roadVehicle.run("摩托车");
		roadVehicle.run("汽车");
		AirVehicle airVehicle = new AirVehicle();
		airVehicle.run("飞机");
		WaterVehicle waterVehicle = new WaterVehicle();
		waterVehicle.run("轮船");
	}
}
	class RoadVehicle {
		public void run(String vehicle) {
			System.out.println(vehicle + " 在公路上跑 ");
		}
	}

	class AirVehicle {
		public void run(String vehicle) {
			System.out.println(vehicle + " 在天空中飞 ");
		}
	}

    class WaterVehicle {
	public void run(String vehicle) { System.out. println(vehicle + " 在水里游 ");  }
}

方案2的分析 1.遵守单一职责原则 2.但是改动很大,即要将类分解,又要修改客户端 3.改进:保留并修改Vehicle类
方案3 保留并修改Vehicle类

package org.yunan.design;

public class singleResponsi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yu_Nan___

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值