股票场内基金交易,没时间盯盘?
使用优财助手电脑客户端记录下您的股票买入卖出数据,能帮您时刻盯盘,会根据您记录的未售出买入价计算上涨或下跌幅度,及时弹框通知您。想知道如何使用?快点击左方视频观看了解吧~~下载地址:http://youcaizhushou.com
简介
这周继续写《Android源码设计模式解析与实战》读书笔记。本书的第三章介绍了 Builder(建造者)模式的使用方式以及在 Android 源码中的应用。
Builder 模式介绍
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。对于复杂的对象,为了在构建过程中对外部隐藏实现细节,可以使用 Builder 模式将部件和组件过程分离,使得构建过程和部件都可以自由扩展,两者之间的耦合度也降到最低。
使用场景
1.相同的方法,不同的执行顺序,产生不同的事件结果时。
2.多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时。
3.产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个使用建造者模式非常适合。
4.当初始化一个对象特别复杂时,如参数多,且很多参数有默认值。
Builder 使用方法
我仿照 Android 源码中的 AlertDialog.Builder ,将书中的源码作了修改,更加符合日常使用习惯。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
public class Computer { private ComputerConfig mConfig; private Computer() { } public static Computer getInstance() { return ComputerHolder.sInstance; } public void init(ComputerConfig config) { this.mConfig = config; } @Override public String toString() { return "主机:" + mConfig.mBoard + " 显示器:" + mConfig.mDisplay + " 操作系统:" + mConfig.mOS; } private static class ComputerHolder { private final static Computer sInstance = new Computer(); } } |
Computer 类的属性全部放在 ComputerConfig 类中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
public class ComputerConfig { String mBoard; String mDisplay; String mOS; private ComputerConfig(){} public static class Builder{ String mBoard; String mDisplay; String mOS; public Builder setmBoard(String mBoard) { this.mBoard = mBoard; return this; } public Builder setmDisplay(String mDisplay) { this.mDisplay = mDisplay; return this; } public Builder setmOS(String mOS) { this.mOS = mOS; return this; } private void apply(ComputerConfig config){ config.mBoard=this.mBoard; config.mDisplay=this.mDisplay; config.mOS=this.mOS; } public ComputerConfig create(){ ComputerConfig config=new ComputerConfig(); this.apply(config); return config; } } } public class Demo { public static void main(String[] args) { ComputerConfig config = new ComputerConfig.Builder().setmBoard("机甲战神") .setmDisplay("清华同方").setmOS("windows 10").create(); Computer computer = Computer.getInstance(); computer.init(config); System.out.println(computer.toString()); } } |
运行结果:
通过将 ComputerConfig 的构造函数私有化,用户只有通过 Builder 对象的 create 方法才能获取 ComputerConfig 实例并设置属性,这就是构建和表示相分离。Android 中最经典的 Builder 模式应用也就是 AlertDialog.Builder 了,我写的这个例子也是参照了源码中的写法,因此在本文中就不列举源码了。
总结
优点:
1.良好的封装性,使用建造者模式可以使客户端不必知道产品内部组成细节。
2.建造者独立,容易扩展。
缺点:
1.会产生多余的Builder对象及Director对象,消耗内存。
参考资料
《Android 源码设计模式解析与实战 》
想获得去掉 5 元限制的证券账户吗?

证券交易股票基金的佣金,不足 5 元会按照 5 元收取。比如交易 1000 元的股票,按照普遍的证券佣金手续费率万 2.5,其交易佣金为 0.25 元,小于 5 元,实际会收取佣金 5 元,买卖两次需要支付 10 元佣金成本,1% 的利润就这样没了。
如果您想去掉最低交易佣金 5 元限制,使用微信扫描左边小程序二维码,访问微信小程序「优财助手」,点击底部菜单「福利」,阅读文章「通过优财开证券账户无最低交易佣金 5 元限制」,按照文章步骤操作即可获得免 5 元证券账户,股票基金交易手续费率万 2.5。
请注意,一定要按照文章描述严格操作,如错误开户是无法获得免 5 元证券账户的。
如果您想去掉最低交易佣金 5 元限制,使用微信扫描左边小程序二维码,访问微信小程序「优财助手」,点击底部菜单「福利」,阅读文章「通过优财开证券账户无最低交易佣金 5 元限制」,按照文章步骤操作即可获得免 5 元证券账户,股票基金交易手续费率万 2.5。
请注意,一定要按照文章描述严格操作,如错误开户是无法获得免 5 元证券账户的。