今天看到这篇文章:http://www.androiddesignpatterns.com/2012/05/using-newinstance-to-instantiate.html public class MyFragment extends Fragment { public static MyFragment newInstance(int index) { MyFragment f = new MyFragment(); Bundle args = new Bundle(); args…
断断续续的,<Android源代码设计模式解析>也看了一遍.书中提到了非常多的设计模式.可是有部分在开发中见到的几率非常小,所以掌握不了也没有太大影响. 我认为这本书的最大价值有两点,一个是从设计模式的角度去理解Android源代码,结合着日常开发中的经常使用类,对设计模式的理解会更加的深刻:另外一个优点就是了解经常使用模式.再看其它人写的代码的时候,更easy理解代码思路. 以下是我的读书笔记和一些思考,设计模式仅仅整理我认为重要的部分. 建造者模式 建造者模式最明显的标志就是Build类,…
视频建议采用超清模式观看, 欢迎点击订阅我的优酷 意图 Intent 一个应用程序肯定不只有一个界面,如何切换到其它界面,只时候就需要启动其它的Activity.启动Activity有多种方式.我在这简单总结下: 学习开启其它的Activity,首先需要了解意图: Intent是在不同组件中(比如两个Activity)提供运行时绑定的对象.Intent代表一个应用"想去做什么事",你可以用它做各种各样的任务,不过大部分的时候他们被用来启动另一个Activity. 显示意图 显示意图顾名…
上课时yqj2065要求:除了JDK等框架或工具中的类,自己编写的类不得使用new创建对象(Test除外). 据说是因为使用new会涉及到硬编码.(不是很懂) 所以要求用God类利用反射+配置文件来创建对象. 下面介绍如何创建并使用tool包中的工具类God: 1.属性配置文件 Java程序通常处理的配置文件有两种类型①XML格式的配置文件.②属性配置文件(.properties文件) 属性配置文件是一种简单的.易解析的文件格式.该.properties文件是一个文本文件,仅包含两种语法. 前面…
应用举例 yii\db\ActiveRecord //获取 Connection 实例 public static function getDb() { return Yii::$app->getDb(); } //获取 ActiveQuery 实例 public static function find() { return Yii::createObject(ActiveQuery::className(), [get_called_class()]); } 这里用到了静态工厂模式. 静态工…
应用举例 yii\db\ActiveRecord //获取 Connection 实例 public static function getDb() { return Yii::$app->getDb(); } //获取 ActiveQuery 实例 public static function find() { return Yii::createObject(ActiveQuery::className(), [get_called_class()]); } 这里用到了静态工厂模式. 静态工…
工厂方法模式 定义创建对象的接口,让子类决定实例化哪一个类,工厂方法使得一个类的实例化延迟到其子类. *最初的定义出现于<设计模式>(Addison-Wesley,1994) 注意:我讲解的是静态工厂,它只能执行静态的方法,也就是类方法,似乎与工厂方法有些神识但也有区别. 先准备一个基类的数据模型 BaseModel.h + BaseModel.m #import <Foundation/Foundation.h> // 基类数据模型,为派生出的子类定义统一的接口(该基类所有的实现…
静态工厂方法,也不知道为何叫这个名字.其实也就是一个静态函数,可以替代构造函数用.大名鼎鼎的 guava 就大量使用这种模式,这是非常有用的模式. 比如是 Integer i = Integer.valueOf(123); Boolean bool = Boolean.valueOf(true); //guava 的方法 ConcurrentMap<String,Integer> concurrentMap = Maps.newConcurrentMap(); ArrayList<Int…
概念:        工厂设计模式提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类步骤. 很多高级模式都是依赖于工厂模式. 好处:         PHP中能够创建基于变量内容的类的新实例,减少主代码流中的基于条件复杂性: 同时如果类发生改变不需要所有的地方进行修改,只需要在工厂中进行修改 (无论对象被修改或者添加其他对象,Factory对象调用方式仍让是相同的)(集中实例化) 应用场景:       做支付接口的时候,未来可能对应不同的支付网关:支付宝.财付通.网银在线…
工厂模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到了子类. 1.业务逻辑 1.1.父类Operation package com.designmode.factory; public abstract class Operation { protected int numberA; protected int numberB; public void setValue(int numberA,int numberB){…