1、单例模式(静态模式)
使用原则:使内存中保持一个对象,写法如下:
- public class SingleObj{
- private static final SingleObj obj=new SingleObj();
- public static SingleObj getObj(){
- return obj;
- }
- private SingleObj{
- }
- }
2、工厂模式
使用原则:提供实例对象的引用,写法如下:
- public class Demo{
- public static void main(String[] args){
- Factory f=new Factory();
- f.getInstance().getString();
- }
- }
- public class Factory{
- public DemoDao getInstance(){
- DemoDao instance=new DemoDaoImp();
- return instance;
- }
- }
- interface DemoDao{
- public String getString();
- }
- public DemoDaoImp Implements DemoDao{
- public String getString(){
- System.out.println("工厂模式");
- };
- }
3、代理设计模式
使用原则:就像秘书和老板的关系,秘书负责日常事务的处理,比如老板行程安排、会议资料的整理,老板负责执行,比如开始行程 、开会宣布工作
- interface NormalTask{
- public void journey();
- }
- public class Boss implements NormalTask{
- public void journey(){
- System.out.println("开始行程");//老板开始行程
- };
- }
- public class Secretary implements NormalTask{
- private NormalTask task;
- public Secretary(NormalTask task){
- this.task=task;
- }
- public void planJourney(){//秘书需要做额外的安排工作
- System.out.println("安排行程");
- };
- public void journey(){
- this.planJournery();//判读是否安排好了行程,如果安排好了,就可以开始行程了
- this.task.journery();//通知老板可以开始行程了
- };
- }
- public class Demo{
- public static void main(String args[]){
- NormalTask task=new Secretary(new Boss());
- task.journery();//老板在秘书的安排下开始行程
- }
- }
4、观察者设计模式
5、适配器模式

你可能感兴趣的文章
来源:每日教程,
每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://teachcourse.cn/android-common-design-pattern ,谢谢支持!
转载请注明出处: https://teachcourse.cn/android-common-design-pattern ,谢谢支持!
自定义弹窗 VS AlertDialog分享弹窗
AlertDialog通常使用默认的样式,弹窗居中显示,如何让弹窗布满屏幕,同时设置AlertDialog弹窗底部对齐或顶部对齐,实现类似...
Android开发之HorizontalScrollView控件使用案例介绍
HorizontalScrollView和平时我们使用的ListView、GridView、ScrollView差不多,也属于一个滚动视图控件,当在一个有限的屏幕内,尺寸大小没能够...
H5邀请函-发布会页面
H5 邀请函:一个发布会页面的从 0 到 1
背景:要给新产品做一份朋友圈可传播的 H5 邀请函。要求是:打开就能看到发布会信息,往下滑有日程,底...
moviePY将一张图片和一段音频和字幕生成视频完整代码
以下是一个使用 MoviePy 库将一张图片、一段音频和字母(作为动态字幕)合成视频的完整 Python 代码示例。在这个例子中,我们将创建一个简单的滚...
Python常用100个关键字详细示例(2)
当然,这里继续补充一些Python关键字的示例:
11、 from ... import - 从模块导入特定对象:
from math import sqrt
# 直接使用导入的函数,无...
Scaffold关键字如何用
我是如何理解和使用 Scaffold 的
今天我想和你聊聊 Compose 中的 Scaffold 这个组件。结合我最近在做的项目 D:\dazhao\androidStudio\FirstCompo...
初学Android Studio项目结构第一课
一个Android项目包含着定义你的Android APP的所有东西,根据一个APP源代码来创建配置和测试源码。Android SDK工具...
关于Android app的launcher图标更换后,仍然显示默认的ic_launcher图标的解决方法
关于替换Android项目drawable-hdpi、drawable-xhdpi、drawable-xxhdpi默认APP ic_lau...
解决:启动Genymotion提示“Unable to load VirtualBox engine”的错误
概要
Genymotion安装使用过程挺简单,只是在启动的时候偶尔会到遇到启动失败,这么就遇到下图提示,意识是说无法加载VirtualBox虚拟器工具。看来...
Python框架Flask开发用户登录、注册、校验功能,存储到MySQL数据库
在Python Flask框架中开发用户登录、注册、校验等功能,并将用户数据存储到MySQL数据库,一般会涉及以下几个核心步骤:
1. 初始化项目与依赖
首...