10.18工作学习记录

1、上午牛客刷题期间用到inputReadder来读取输入的字符串 用 string中的split方法来分割字符串并用字符串数组来接收 将各个值拆分开来   用double.praseDouble来将string转为double 再用String.format("%.2f",d)来格式化字符串 最后用printf的%s来输出各个值

nowcoder.com/profile/230990826/codeBookDetail?submissionId=402629461

2、String Ioc与Di的学习  IOC即控制反转 将对象的创建权交给外部,今日学习的是用配置文件来实现bean的加入,以及bean之间的依赖  bean的实例化方式有 构造方法、静态工厂、实例工厂、factory bean等方式 依赖注入方式有set方法注入与构造器方式注入 不仅支持引用类型的注入并且支持简单类型的注入

3、Spring容器的学习  容器创建用ClassPathXmlApplicationContext    创建方式有 通过BeanFactory与ApplicationContext创建  BeanFactory是延迟加载   注解开发中@Component注解与@Controller Service Repository是一样的只是为了区分 控制层 业务层和数据层 在纯注解开发中可以通过配置类(加上ComponentScan注解,定义其为配置类的注解是@configuration)替代配置文件来作为容器初始化的参数

4、自动装配注解  @Autowared注解是按类型装配  如果有多个相同类型的bean 可以@Qualifie注解指定来注入某个bean     @Resouce注解按名称装配  

5、配置文件中的属性抓取   通过在配置类中添加@PropertySource("jdbc.properties") 参数为 文件名加后缀    再从某个类中加入@value("${name}"拿取即可

6、MySql学习,分组用group by 语句 一般用于 根据id 来分组 或者区分各个学校 部门 等  其后可以跟着写Having 用来过滤分组 其后跟着 orderBy 来排序

7、子查询案例
select nick_name FROM sys_user
WHERE dept_id in (SELECT dept_id FROM `sys_dept`
WHERE parent_id = '116')

子查询为首先查出父id为116的部门id有哪些 再根据部门id查询出该部门下有哪些员工(员工名)

可以作为计算字段来使用子查询

设计模式学习: 单一职责原则  交通工具 案例  第一种方式违反单一职责原则 一个类既执行了水上交通工具 又执行了陆地和飞行交通工具 第二种方式写了三个不同的类 分别用来做 飞行 陆地 海上、改动比较大  第三种方式是对类中的方法做区分 改动小

如果代码逻辑比较简单  可以在方法级别遵守单一职责原则

接口隔离原则 :类A通过接口1完成 对接口1的实现类B的依赖  类A只是需要接口1中的某三个方法 而此时接口1中有五个方法 因为A的需要 此时实现类B需要将五个方法都实现   这违反了接口隔离原则  此时 我们应该将接口1拆分为两个接口  接口11与接口12  接口11给类A用 而接口12给其他的类用  

改善后:

一个类的依赖应该建立在最小的接口上  ---- 把某类 用得到的方法和用不到的方法拆成小的接口  用自己用得到的方法的接口即可  避免实现某些用不到的方法 按传统方式 上述案例需要各自实现五个方法  而按照接口隔离原则来 只需要各自实现三个方法

依赖倒转原则: 核心是面向接口编程  即不要直接依赖某个实现类  让细节去依赖抽象

案例中 人具有接受信息的方法 传统方式是用接受信息的方法直接依赖 email类 直接实现emai的接收   此时如果人想要接收 微信消息 接收短信消息呢? 那么又要改人的接收信息方法的依赖

而根据依赖倒转原则 应该写一个IReceiver接口  让email实现该接口  如果想要接收微信消息 再写一个微信实现类实现Ireceiver接口即可

依赖倒转可以用三种方式实现开关接口对类型接口(TV,电风扇)的依赖的传递  接口方式(开关中的open方法来接收电视对象)  构造器方式  set方式(将电视对象set到该类的电视属性中 在开关类的open方法中用this.Tv.play来打开电视.) 此处与Spring中的依赖注入方式一致  只是spring没有接口注入 基本是set与构造器注入

A与B之间最好有一个接口来缓冲 使用接口或者抽象类的作用应该是定好规范,尽量不要写太多的细节  依赖倒转原则主要是对 可扩展性的一种要求

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值