欢迎访问宙启技术站
智能推送

Android面试轻松搞定设计模式:六大原则+三大分类+详细总结

发布时间:2023-05-15 02:53:15

设计模式是面向对象编程中的重要概念,它是一种经验丰富的解决方案,能够帮助开发人员快速地解决一些常见的编程问题。在Android开发中,掌握设计模式是至关重要的,因为它可以帮助开发人员提高代码的可维护性、可扩展性和可重用性。在本文中,我们将介绍Android面试中常被提及的设计模式的六大原则和三大分类,并进行详细总结。

一、原则

1. 单一职责原则(Single Responsibility Principle,SRP)

单一职责原则是指一个类只负责单一的功能或职责,即一个类只有一个引起它变化的原因。如果一个类承担了多个职责,那么当其中一个职责发生变化时,就会影响到其他职责,从而加大了维护的难度。

2. 开放封闭原则(Open Close Principle,OCP)

开放封闭原则是指一个类应该对扩展开放,对修改关闭。这意味着我们应该设计出可以轻松扩展的代码,而不是频繁修改已有的代码。这样可以保证代码的稳定性和复用性。

3. 里氏替换原则(Liskov Substitution Principle,LSP)

里氏替换原则是指任何接口可以被它的实现类所替换,并且替换不会影响程序的正确性。这意味着我们需要在设计接口时,保证接口的稳定性和扩展性,能够让实现类轻松地替换接口。

4. 依赖倒置原则(Dependency Inversion Principle,DIP)

依赖倒置原则是指高层模块不应该依赖低层模块,而是应该依赖于抽象类或接口。这样可以降低高层模块与低层模块的耦合度,提高代码的可维护性和可扩展性。

5. 接口隔离原则(Interface Segregation Principle,ISP)

接口隔离原则是指一个类不应该强迫其他类依赖于它们不使用的方法。这意味着我们需要设计出单一职责的接口,让其他类可以按需选择需要实现的接口,从而降低类与类之间的耦合度。

6. 迪米特法则(Law of Demeter,LoD)

迪米特法则是指一个软件实体应当尽可能少地与其他实体发生相互作用。通俗而言,就是一个类只需要知道它与直接交互的类的信息。这样可以降低类之间的耦合度,提高代码的可维护性和可重用性。

二、分类

设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。

1. 创建型模式

创建型模式是用来创建对象的模式,主要包括工厂模式、抽象工厂模式、单例模式、建造者模式和原型模式。

工厂模式是一种简单工厂模式,它通过一个工厂类来创建产品实例,将对象的创建与使用分离开来,减少了紧密耦合。

抽象工厂模式是一种工厂模式的扩展,它通过抽象工厂和具体工厂实现了产品族的创建,能够在不同的产品等级结构中创建出一整套产品。

单例模式是一种保证一个类只有一个实例的模式,通过私有构造函数和私有静态变量来实现。

建造者模式是一种用来创建复杂对象的模式,将复杂对象的构建过程拆分成多个部分,每个部分只负责一小部分功能,然后将它们组合起来创建一个完整的对象。

原型模式是一种通过已有的对象来创建新对象的模式,它通过克隆来实现对象的创建。

2. 结构型模式

结构型模式是用来处理类或对象之间的关系的模式,主要包括适配器模式、桥接模式、装饰器模式、组合模式、外观模式和享元模式。

适配器模式是一种将一个类的接口转换成客户端所期待的接口的模式,适配器模式可以让原本接口不兼容的类能够一起工作。

桥接模式是一种用来将抽象与实现分离的模式,它通过将一个对象的实现与它的抽象分离开来,可以让它们独立地变化。

装饰器模式是一种动态地给一个对象添加新的功能的模式,它通过将被装饰者嵌套在装饰者中,实现对被装饰者的增强。

组合模式是一种将多个对象组合成一个树形结构来表示整个对象层次结构的模式,它可以将叶子节点和组合对象看作相同的对象来处理。

外观模式是一种给一组接口提供一个简单统一的接口的模式,它通过封装复杂的子系统,提供一个更简单的高级接口给客户端使用。

享元模式是一种通过共享对象来减少内存占用的模式,它通过将相同的对象共享使用,减少了内存的开销。

3. 行为型模式

行为型模式是用来处理类或对象之间的通信的模式,主要包括命令模式、责任链模式、观察者模式、迭代器模式、中介者模式、备忘录模式、访问者模式和状态模式。

命令模式是一种将请求封装成对象的模式,这样可以将请求的发送者和接收者解耦。

责任链模式是一种将多个处理对象连接成一条链的模式,每个处理对象都可以通过链传递请求到下一个处理对象,直到请求被处理。

观察者模式是一种发布订阅模式,它通过观察者和被观察者之间的协作,可以让一个对象在发生改变时通知其他对象。

迭代器模式是一种通过迭代器遍历集合的模式,不需要暴露集合的内部结构。

中介者模式是一种通过中介者协调各个对象之间的交互的模式,让各个对象之间的交互更加简单和可维护。

备忘录模式是一种通过保存对象状态的快照,来实现对象状态的撤销和恢复的模式。

访问者模式是一种通过访问者来操作对象的模式,它可以在不改变对象结构的前提下,对对象进行新的操作。

状态模式是一种让对象在不同的状态下具有不同的行为的模式,它通过封装状态的变化,来简化对象行为的