当前位置: 首页 > article >正文

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

目录

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;
    
    @Override
    public void onCreate( Bundle savedInstanceState ) {
        super.onCreate(savedInstanceState);
        gv = new GraphicView(this);
        setContentView(gv);
    }
}

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

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


http://www.kler.cn/a/448124.html

相关文章:

  • 登山第十六梯:深度恢复——解决机器人近视问题
  • leetcode之hot100---234回文链表(C++)
  • Flutter组件————Container
  • 探索 CI/CD 工具的力量
  • JVM性能优化一:初识内存泄露-内存溢出-垃圾回收
  • 「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
  • 【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
  • 《庐山派从入门到...》板载按键启动!
  • Onvif服务端开发
  • C++ 集合 list 使用
  • 【CSS in Depth 2 精译_085】14.2:CSS 蒙版的用法
  • YOLOv11模型改进-模块-引入多尺度前馈网络MSFN 用于解决噪声
  • MFC/C++学习系列之简单记录7
  • 前端优化之图片
  • 一区牛顿-拉夫逊算法+分解+深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测
  • hive架构简述
  • Android Retrofit2OkHttp3添加统一的请求头Header
  • 基于前端技术UniApp和后端技术Node.js的电影购票系统
  • 基于LabVIEW的USRP信道测量开发
  • Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
  • 数智化医院分布式计算框架融合人工智能方向初步实现与能力转换浅析
  • 数位dp-acwing(数字游戏)
  • 基于单片机的步进电机控制系统的设计研究
  • 数据结构 (队列略版)
  • TCP常见问题
  • 如何在Ubuntu上利用Docker和Cpolar实现Excalidraw公网访问高效绘图——“cpolar内网穿透”