Android中的设计模式

面对对象六大原则

设计模式是对面向对象的实现
SOLID即以下1-5原则

1. 单一职责原则(SRP SingleResponsibilityPrinciple)

就一个类而言,应该仅有一个引起它变化的原因。一个类中应该是一组相关性很高的函数、数据的封装。

2. 开闭原则(OCP OpenClosePrinciple)

软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改是封闭的。

3. 里式替换原则(LSP LiskovSubstitutionPrinciple)

所有引用基类的地方必须能透明地使用其子类的对象。

4. 依赖倒置原则(DIP DependenceInversionPrinciple)

 - 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
 - 抽象不应该依赖细节;
 - 细节应该依赖抽象。(细节:实现类,抽象:抽象类或接口)

5. 接口隔离原则(ISP InterfaceSegregationPrinciples)

客户端不应该依赖它不需要的接口。

6. 迪米特原则(LOD LawOfDemeter,最少知识原则)

一个类应该对自己需要耦合或调用的类知道得最少,类的内部如何实现与调用者或者依赖着没有关系,调用者或者依赖者只需要知道它需要的方法即可。

Android中常用的设计模式?并源码举例?

设计模式

1. 单例模式

应用最广泛

定义
确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

使用场景
确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。如:创建一个对象需要消耗的资源过多(如访问IO和数据库等资源)

2. Builder模式

自由拓展项目

3. 原型模式 —— 使程序更高效

4. 工厂方法模式 —— 应用最广泛

5. 抽象工厂模式 —— 创建型设计模式

6. 策略模式

7. 状态模式

8. 责任链模式 —— 更灵活

9. 解释器模式 —— 化简为繁

10. 命令模式 —— 让程序畅通

11. 观察者模式 —— 解耦

12. 备忘录模式

13. 迭代器模式

14. 模板方法模式

15. 访问者模式

16. 中介者模式

17. 代理模式

18. 组合模式

19. 适配器模式

20. 装饰模式

21. 外观模式

22. 享元模式

23. 桥接模式

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Android的MVC设计模式是一种软件架构模式,用于将应用程序的逻辑、数据和用户界面分离开来。它由三个主要组件组成:Model(模型)、View(视图)和Controller(控制器)。 1. Model(模型):模型负责处理应用程序的数据和业务逻辑。它包含数据的获取、存储和处理方法。在Android,模型通常是指数据源,例如数据库、网络请求或文件系统。 2. View(视图):视图负责展示数据给用户,并接收用户的输入。它通常是指Android的布局文件,例如XML文件,用于定义应用程序的用户界面。 3. Controller(控制器):控制器负责协调模型和视图之间的交互。它接收用户的输入,并根据输入更新模型和视图。在Android,控制器通常是指Activity或Fragment,它们处理用户的交互,并更新模型和视图。 MVC设计模式的优点是可以实现代码的重用和模块化,使得应用程序更易于维护和扩展。它将应用程序的不同部分分离开来,使得每个部分都可以独立开发和测试。 下面是一个简单的示例代码,演示了Android的MVC设计模式: ```java // Model public class UserModel { private String name; private int age; public UserModel(String name, int age) { this.name = name; this.age = age; } // Getters and setters // Controller public class UserController { private UserModel model; private UserView view; public UserController(UserModel model, UserView view) { this.model = model; this.view = view; } public void updateName(String name) { model.setName(name); } public void updateAge(int age) { model.setAge(age); } public void displayUser() { view.displayUser(model.getName(), model.getAge()); } } // View public class UserView { public void displayUser(String name, int age) { System.out.println("Name: " + name); System.out.println("Age: " + age); } } } // Usage UserModel model = new UserModel("John", 25); UserView view = new UserView(); UserController controller = new UserController(model, view); controller.displayUser(); // 输出:Name: John, Age: 25 controller.updateName("Mike"); controller.updateAge(30); controller.displayUser(); // 输出:Name: Mike, Age: 30 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值