Spring IoC容器与Bean管理3:Spring初识三:通过一个案例来【分析传统编码方式的不足】;

本篇博客的主要目的是:演示传统编码方式的不足;

          ● 传统编码方式中,【一些字符串文本信息,是写死的】,【对象也是在代码中new好的、写死的】,【对象之间的关系,也是写死的;对象之间是硬关联】;这些因素的结果是,当需要调整程序的时候,就必须要修改源代码;这会导致程序可扩展性和可维护性很低;

          ● 由此,引出Spring Framework的必要性;(其实也就是,Spring IoC容器的必要性);Spring IoC容器通过配置的方式,实现了【对象实例化】和【对象与对象之间的依赖关系】;从而,可以解决传统编码方式的不足;

说明:

(1)本篇博客没什么难点,主要目的是演示传统编码方式的不足;博客中的代码也都很简单,而且代码部分很简单,重点是了解其中的缺点; 

目录

一:需求说明:

二:传统方式,程序代码实现: 

(1)创建一maven工程

(2)创建演示类

三:弊端分析:重点!!!


一:需求说明:

那么,该如何编写程序,使得孩子吃到自己喜欢的苹果?

二:传统方式,程序代码实现: 

这个地方不是重点,不需要抠代码细节,主要关注其中的对象依赖关系

(1)创建一maven工程

(2)创建演示类

Apple类:

package com.imooc.spring.ioc.entity;

public class Apple {
    private String title; //标签、品种
    private String color; //颜色
    private String origin; //产地

    public Apple() {
    }

    public Apple(String title, String color, String origin) {
        this.title = title;
        this.color = color;
        this.origin = origin;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getOrigin() {
        return origin;
    }

    public void setOrigin(String origin) {
        this.origin = origin;
    }
}

Child类:

package com.imooc.spring.ioc.entity;

public class Child {
    private String name; //小孩名字
    private Apple apple; //小孩吃到的苹果

    public Child() {
    }

    public Child(String name, Apple apple) {
        this.name = name;
        this.apple = apple;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Apple getApple() {
        return apple;
    }

    public void setApple(Apple apple) {
        this.apple = apple;
    }

    public void eat() {
        System.out.println(name + "吃到了" + apple.getOrigin() + "种植的" + apple.getTitle());
    }
}

 Application类:

package com.imooc.spring.ioc;

import com.imooc.spring.ioc.entity.Apple;
import com.imooc.spring.ioc.entity.Child;

public class Application {
    public static void main(String[] args) {
        Apple apple1 = new Apple("红富士","红色","欧洲");
        Apple apple2 = new Apple("青苹果","绿色","中亚");
        Apple apple3 = new Apple("金帅","黄色","中国");

        Child lily = new Child("莉莉",apple1);
        Child andy = new Child("安迪", apple2);
        Child luna = new Child("露娜", apple3);
        lily.eat();
        andy.eat();
        luna.eat();

    }
}

三:弊端分析:重点!!!

(1)问题一:【字符(串),等文本信息】是写死的; 

(2)问题二:【对象】是写死的,在编译时就已经确定了;

(3)问题三:【对象之间的关系】是写死的,在编译时就已经确定了;即,对象之间是硬关联;(最重要的一个问题)


为了解决上述问题,Spring应运而生,Spring最根本的目的就是【通过配置的方式,完成对象的实例化,和,对象与对象之间的依赖关系】。。。。这一切的目的,都是提高程序的可维护性和可扩展性;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值