面向对象设计原则:在Java中实践这些原则
面向对象设计(Object-Oriented Design,简称OOD)是软件工程中的一个重要环节。Java语言作为一门支持面向对象的编程语言,自然会遵循一些面向对象的设计原则。以下是Java中实现这些原则的一些实例:
单一职责原则(Single Responsibility Principle, SRP)
实例:
Person
类只包含个人信息和基本行为,不涉及具体业务逻辑。class Person {
String name;
int age;
// 基本行为方法
void eat() {
System.out.println("Eating...");
}
// 仅用于展示SRP原则
void handleBusiness(int business) {
if (business > 0) {
System.out.println("Handling business: " + business);
eat(); // 业务处理后吃饭
} else {
System.out.println("Invalid business: " + business);
}
}
}
开闭原则(Open-Closed Principle, OCP)
实例:
BankAccount
类不依赖于具体存款方式,如银行卡、电子钱包等。class BankAccount {
double balance;
// 开放的方法 - 用于与外界交互
void deposit(double amount) {
balance += amount;
System.out.println("Deposit successful. Balance: " + balance);
}
void withdraw(double amount) {
if (amount > balance) {
System.out.println("Withdrawal failed. Insufficient balance.");
return;
}
balance -= amount;
System.out.println("Withdrawal successful. Balance: " + balance);
}
// 仅用于展示开闭原则
void handleTransaction(int transactionType, double amount)) {
switch (transactionType) {
case DEPOSIT:
deposit(amount);
break;
case WITHDRAWAL:
withdraw(amount);
break;
default:
System.out.println("Invalid transaction type.");
break;
}
}
}
依赖倒置原则(Dependency Inversion Principle, DIP)
- 实例:
Logger
接口不依赖于具体的日志实现,如ConsoleLogger
、FileLogger
等。
```java
// Logger 接口
interface Logger {
void log(String message);
}
// ConsoleLogger 类实现 Logger 接口
class ConsoleLogger implements Logger {@Override
public void log(String message) {
System.out.println(message);
}
}
// 代码使用示例 - 不依赖于具体日志实现
class Application {private Logger logger;
public Application(Logger logger) {
this.logger = logger;
}
public void executeTask(String taskDescription) {
logger.log("Executing task: " + taskDescription);
// 执行任务逻辑...
}
}
```- 实例:
通过以上实例,可以看到在Java中实践面向对象设计原则的方法。
还没有评论,来说两句吧...