《Android高级进阶》学习笔记
第4篇 新技术篇
第26章:函数式编程思想及其在Android中的应用
函数式编程是一种编程范式,它的基础是lambda演算。lambda演算的函数可以接受函数作为输入输出。和指令式编程相比,函数式编程中强调函数的运算比指令的执行重要,函数是第一等公民。
第27章:依赖注入及其在Android中的应用
1、基本概念
控制反转(Inversion of Control,IoC)是面向对象编程的重要法则之一,旨在减小程序中不同部分的耦合问题。IoC一般分为两种类型:
- 依赖注入(Dependency Injection,DI)
- 依赖查找(Dependency Lookup)
其中,依赖注入使用广泛,因此,一般控制反转和依赖注入可以互换使用。
2、一个例子
Public class Car{
private Engine mEngine;
private Wheel mWheel;
public Car(){
mEngine = new PetrolEngine();
mWheel = new MichelinWheel();
}
}
上面代码的缺点:
- 在Car的构造函数中,需要自己创建Engine(Wheel也一样)的实例。
- 同时需要找到如何实现Engine,在上面的代码中,Car需要知道PetrolEngine这个Engine子类的存在。
- 一旦需要将Engine类型由Petrol改为Diesel,则还需要修改Car的构造函数。
解决方法:
1、构造函数注入:
Public class Car{
private Engine mEngine;
private Wheel mWheel;
public Car(Engine engine, Wheel wheel){
mEngine = engine;
mWheel = wheel;
}
}
2、Setter函数注入:
Public class Car{
private Engine mEngine;
private Wheel mWheel;
public Car(){
}
public void setEngine(Engine engine){
mEngine = engine;
}
public void setWheel(Wheel wheel){
mWheel = wheel;
}
}
3、接口注入:
//先写一个接口
public interface ICarInject{
void bindEngine(Engine engine);
void bindWheel(Wheel wheel);
}
//Car类实现这个接口
Public class Car implements ICarInject{
private Engine mEngine;
private Wheel mWheel;
public Car(){
}
public void bindEngine(Engine engine){
mEngine = engine;
}
public void bindWheel(Wheel wheel){
mWheel = wheel;
}
}
第28章:Android世界的Swift:Kotlin在Android中的应用
Kotlin是一门类似于Swift的基于JVM的通用编程语言,可用于服务器程序开发、桌面客户端程序开发以及Android应用开发。使用Kotlin,可以很容易在Android工程中替代Java,或者与Java混合使用。
Kotlin是一门包含很多函数式编程思想的面向对象编程语言,它生来就是为了弥补Java语言缺失的现代语言的特性,并极大地简化代码,使得开发者可以尽量少地编写样板代码。
第29章:React Native For Android入门指南
React Native是Facebook开源的一个框架,可以使用JavaScript编写Android和iOS的APP,并且两个平台可以服用70%~80%的代码。
第30章:Android在线热修复方案研究
可用于APP更新或紧急bug修复。
第31章:面向切面编程及其在Android中应用
面向切面编程(Aspect Oriented Programming, AOP)是软件开发中的一个编程范式,通过预编译方式或者运行期动态代理等实现程序功能的统一维护的一种技术。它是OOP的延续,利用AOP开发者可以实现对业务逻辑中的不同部分进行隔离,从而进一步降低耦合,提高程序的可复用性,进而提高开发的效率。
第32章:基于Facebook Buck改造Android构建系统
Facebook Buck可以替换现有的Gradle,用来进行项目构建,生成APK。
更多推荐
Android知识点整理(四)
发布评论