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 ,谢谢支持!
06-Bash工具学习
Bash 工具学习记录
学习日期:2026-03-13
所属阶段:阶段一 - 基础掌握
工具概述
Bash 是 Claude Code 中用于执行 shell 命令的工具。虽然...
009-wordpress改写文章或页面代码实现Javascript动态加载并渲染防止爬虫
将WordPress文章的主要内容(通常是通过the_content()函数输出)转换为使用JavaScript动态加载的形式,需要wordpress代码做如下调整:
创建一...
python库tkinter实现选择多文件上传
使用Python的tkinter库实现选择多个文件上传的功能通常涉及以下步骤:
导入所需库:
首先确保已经导入了tkinter和filedialog模块。
import ...
Android获取apk安装包的版本及包名等信息
友盟通知消息自动更新功能将逐步下线,应用程序的自动更新功能可能需要开发者自行设计完成,开发自动更新基于版本名称/版本号识别是否新版本,后台...
Android开发之ProgressDialog读取文件进度解析
进度条以一种客观化的方式,让我们知道程序正在执行的情况,在程序需要时间执行任务的时候,提示进度条友好的告诉用户说,当前任务还没有完成,请稍...
Ubuntu系统ERROR 2002 (HY000) Can not connect to local MySQL server through socket varrunmysqldmysqld
在Ubuntu系统中遇到MySQL错误“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'”,这通...
AI 驱动自动化测试实战:从单元测试到 E2E 的全链路智能化
AI 驱动自动化测试实战:从单元测试到 E2E 的全链路智能化
用 AI 写了一个月测试代码之后,我最大的感受是:单元测试可以全自动生成,E2E 测试需...
python库pyQt基础教程二
当然,为了进一步探索PyQt5的功能,下面我将提供一些更高级和实用的组件与功能示例,包括树形视图、表格视图、拖放功能、以及自定义右键菜单。
6...
”Found 2 version of android-support-v4.jar in the dependency list“解决思路
关于Android新建项目自动关联appcompat_v7或android-support-v7-appcompat库后与libs导入ja...
第2篇-核心工具实战
第2篇:核心工具实战 — Glob / Grep / Read / Edit / Bash
前置知识:阅读第1篇后食用效果更佳
学习时长:约 20 分钟
你将学到什么
Glob:...