《Spring上课笔记》---class1
程序员文章站
2022-06-23 08:07:10
目录一:面向对象回顾记录自己的上课笔记,如有错误,还请指正。还是拖到了学院教啊。环境:eclipse+spring4.3一:面向对象回顾面向对象程序设计:1.基本思想:将系统分解为一组可重用的对象2.对象之间维护相互之间的依赖关系3.应用程序通过类和接口组织4.OOP的编程元素实现核心的业务需要需求分析:电脑需要使用CPU去玩游戏。实现一:以面向对象的方式实现Demo每个实体都是一个对象,电脑获得cpu之后去玩游戏。AndroidCpu:package demo1;...
目录
一:面向对象回顾
面向对象程序设计:
1.基本思想:将系统分解为一组可重用的对象
2.对象之间维护相互之间的依赖关系
3.应用程序通过类和接口组织
4.OOP的编程元素实现核心的业务需要
需求分析:
电脑需要使用CPU去玩游戏。
- 实现一:以面向对象的方式实现Demo
每个实体都是一个对象,电脑获得cpu之后去玩游戏。
AndroidCpu:
package demo1;
public class AndroidCpu {
public void run() {
System.out.println("android的cpu装上了");
}
}
IosCpu:
package demo1;
public class IosCpu {
public void run() {
System.out.println("ios的cpu装上了");
}
}
电脑类:
package demo1;
public class Computer {
AndroidCpu cpu=new AndroidCpu();
public void playGame() {
cpu.run();
System.out.println("电脑可以开始玩游戏了");
}
}
启动类:
package demo1;
public class Run {
public static void main(String[] args) {
Computer computer=new Computer();
computer.playGame();
}
}
实现二:分离接口和实现
- 优化目标:消除电脑和CPU实现类之间的依赖关系。
不同cpu实现一个接口,电脑通过实现接口来达到玩游戏的目的。
接口:
public interface Cpu {
public void run();
}
启动类:
public class IosCpu implements Cpu{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Ios的Cpu装上了");
}
}
实现三:采用容器类,所有对象都由容器管理
容器类:
public class Container {
private static Container instance;
private Map<String,Object> components;
private Container() {
components=new HashMap<String,Object>();
instance =this;
Cpu cpu=new IosCpu();
components.put("cpu", cpu);
Computer computer=new Computer();
components.put("computer",computer);
}
public static Container getInstance() {
if(instance==null) {
instance=new Container();
}
return instance;
}
public Object getComponent(String key) {
return components.get(key);
}
}
启动类:
public class Run {
public static void main(String[] args) {
Computer computer=(Computer) Container.getInstance().getComponent("computer");
computer.playGame();
}
}
实现四:使用电脑选择类,封装查找逻辑,对外公开查找组件。
public class ComputerLocator {
private static Container container=Container.getInstance();
public static Cpu getCpu() {
return (Cpu) container.getComponent("cpu");
}
}
实现五:分离接口和实现,进行依赖注入。
电脑类:
public class Computer {
Cpu cpu;
public void setCpu(Cpu cpu) {
this.cpu = cpu;
}
public void playGame() {
cpu.run();
System.out.println("电脑可以开始玩游戏了");
}
}
启动类:
package demo5;
public class Run {
public static void main(String[] args) {
Computer computer=(Computer) Container.getInstance().getComponent("computer");
Cpu cpu=new AndroidCpu();
computer.setCpu(cpu);
computer.playGame();
}
}
本文地址:https://blog.csdn.net/qq_44867340/article/details/114268940