梳理你的思路(从OOP到架构设计)_设计模式Factory Method模式

ops/2024/12/26 23:51:12/

目录

1、Factory Method模式

2、范例: Android + FM(工厂)模式

3、Android里处处可见的FM模式的应用

1、Factory Method模式

  • 誰來創建<T>的對象呢?
  • 例如, 剛才的Template Method模式內含一個EIT造形,那麼, 請問: 誰來創建該<T>的對象呢?
  • Factory Method模式就是一種常用的方案。

2、范例: Android + FM(工厂)模式

在Android框架里,处处可见FactoryMethod模式。例如, Activity、 Service等抽象类别里都定义了onCreate()函数,它就是一个典型的FactoryMethod函数。

// GraphicView.java
// ……..
public class GraphicView extends View{private Paint paint= new Paint();GraphicView(Context ctx) { super(ctx); }@Override protected void onDraw(Canvas canvas) {int line_x = 10; int line_y = 50;canvas.drawColor(Color.WHITE);paint.setColor(Color.GRAY); paint.setStrokeWidth(3);canvas.drawLine(line_x, line_y, line_x+120, line_y, paint);paint.setColor(Color.BLACK);paint.setStrokeWidth(2);canvas.drawText("這是繪圖區", line_x, line_y + 50, paint);int pos = 70; paint.setColor(Color.RED);canvas.drawRect(pos-5, line_y - 5, pos+5, line_y + 5, paint);paint.setColor(Color.YELLOW);canvas.drawRect(pos-3, line_y - 3, pos+3, line_y + 3, paint);}
}// myActivity.java
// ……..
public class ac01 extends Activity {private GraphicView gv = null;@Overridepublic void onCreate( Bundle savedInstanceState ) {super.onCreate(savedInstanceState);gv = new GraphicView(this);setContentView(gv);}
}

myActivity类,通过new GraphicView(this); 来实现工厂EIT生成产品EIT的连接

3、Android里处处可见的FM模式的应用


http://www.ppmy.cn/ops/145243.html

相关文章

探索大语言模型的世界:入门指南

随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为诸多行业关注的焦点。从自然语言处理到生成式人工智能&#xff0c;LLMs 正在改变我们与技术互动的方式。如果你刚刚接触大语言模型&#xff0c;不知道从何下手&…

uni-app开发订单列表页面

目录 一:功能描述 二:功能实现 一:功能描述 订单列表页面包含三个部分,最上面显示订单的状态信息,可以根据订单进行切换,中间显示订单的商品和价格信息,最下面显示订单的操作按钮,可以根据不同的状态操作订单。 二:功能实现 1:状态切换 <view class="nav-…

32位MCU主控智能电表方案

智能电表作为电网数据采集的核心设备&#xff0c;承担着至关重要的角色。它主要用于采集、计量和传输原始的电能数据&#xff0c;确保电力系统的高效运行。该设备配备了多种通讯接口&#xff0c;如RS485和以太网&#xff0c;使得用户能够轻松进行用电检测、集中抄表以及电力管理…

蓝牙和WiFi技术的测试:从基础到高级的学习资源

无线通信技术,特别是蓝牙和WiFi,已被广泛应用于智能设备、物联网(IoT)以及许多行业领域。而随着无线设备数量的激增,如何对这些技术进行高效、准确的测试成为了一个至关重要的问题。在这篇博客中,我们将深入探讨蓝牙和WiFi技术的测试,从基础到高级的学习资源,帮助你掌握…

天融信网络架构安全实践

1、医院客户想通过等保2.0三级&#xff0c;推荐哪几款网络安全产品&#xff1f;&#xff08;至少6个&#xff09; TopSAg(运维安全审计系统) TopNAC&#xff08;网络准入系统&#xff09; TopEDR&#xff08;终端威胁防御系统&#xff09; TDSM-SBU&#xff08;存储备份一体机…

centos7 下使用 Docker Compose

文章目录 介绍特点基本使用1.编写 docker-compose.yml 文件2.在文件夹下运行 docker-compose.yml 文件3.验证4.停止docker-compose 小结 介绍 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许你通过一个 YAML 文件来配置应用程序的服务、网络和卷&a…

Golang内存管理与优化

Golang内存管理与优化 一、Golang内存管理概述 简介 是一种开源的编程语言&#xff0c;由Google开发&#xff0c;特点是简单、快速、安全、并且具有并发特性。在Golang中&#xff0c;内存管理是一项非常重要的工作&#xff0c;对于程序的性能和稳定性都有着至关重要的影响。本文…

【每日学点鸿蒙知识】Charles抓包、lock文件处理、WebView组件、NFC相关、CallMethod失败等

1、HarmonyOS系统中如何使用Charles抓包&#xff1f; 在HarmonyOS操作系统中&#xff0c;使用Charles进行抓包的步骤如下&#xff1a; 在Charles中设置代理。 首先&#xff0c;在Charles的菜单栏上选择“Proxy”→“Proxy Settings”&#xff0c;然后填入代理端口&#xff0…