最近在研读<Effective Java>一书,读书不做点笔记,感觉很容易就忘掉,于是用本篇博客来记录阅读此书的笔记. 郑重声明: 由于是<Effective Java>一书的笔记,所以大部分内容基本来自此书,还有一小部分是自己的理解. 第1条 考虑用静态工厂方法代替构造器 一般来说,获取一个类的实例,大家想到的都是通过该类的公有构造函数来new 一个实例,而第一条推荐我们可以考虑使用静态工厂方法来创建实例,这里的工厂方法并不直接对应于设计模式中的工厂方法模式. 静态工厂方法与构造…
定义自己的视图 对于您的要求非常具体的情况,您很难用内置的ModelView类来满足这些需求,Flask-Admin使您可以轻松地完全控制并将自己的视图添加到界面中. 1)独立视图 可以通过扩展BaseView类并定义自己的视图方法来添加一组独立的视图(不绑定到任何特定的模型). 例如,要添加来自第三方API的某些分析数据来展示的页面,请执行以下操作: from flask_admin import BaseView, expose class AnalyticsView(BaseView):…
I.考虑静态工厂方法替代构造器 优势:1.有清晰的方法名称,方便调用:多参数构造器易出现调用错误 2.不必每次调用都创建新对象 3.可以返回原返回类型的任何子类型 4.创建参数化类型实例的时候,代码简洁 II.多个构造参数考虑构建器III.…
需求: textView 需要placeholder用来提示输入 textView 要做字数限制 textView 禁止表情符号的输入 思考: 因为需求比较通用,便想通过自定义SJTextView来实现: placeholder 通过在textView上添加一个透明的label,输入开始后隐藏实现. 字数限制可以在代理方法中实现,字数达到最大后禁止输入 表情符号禁止输入(这个不常用,因为我们服务器不接收,于是做了限制输入),用了github中 SearchEmojiOnString-iOS 关于…
好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的核心思想就是:-------->简洁.但在简洁的UI里面如何让用户发现当前界面的重点,对比度是我们最有力的工具. 对比度有下列四种用途 1.突出重点,淡化非重点 2.加强视觉效果 3.告诉用户哪里可以点击 4.增强文字可读性 举例说明,如图 这是一个简单的闹钟程序,先别着急往下看,先思考一下,这个界面在…
java 有很多修饰类的属性的关键字:常用的static,final 说说final和static吧,平时在编程的时候,这两个关键字很多时候都觉得可有可无,最多的时候就是他们俩同时出现----定义常量的时候,其他时候:1.感觉没有对程序正常运行有任何影响 2.不使用这两个关键字看起来也没什么毛病. 这就是程序员和工程师的区别吧,迈出这一步,写出精品代码: 1.定义一个类的属性的时候,认真考虑这个属性是可变的还是所有对象通用的.将所有对象通用的属性添加static关键字. 下面来看一个实例: 判断…
1 构造器 => 静态工厂方法 (1)优势 静态工厂方法有名字 静态工厂方法不必在每次被调用时都产生一个新的对象 静态工厂方法能返回原返回类型的任意子类型的对象 静态工厂方法根据调用时传入的不同参数而返回不同类的对象 静态工厂方法返回对象的类不需要存在(SPI架构) (2)限制 没有公有或者保护构造方法的类不能子类化(但是可以鼓励我们使用组合模式,而不是继承模式) 静态工厂方法难以发现 (3)常用静态工厂方法命名 from:传入单个参数,返回该类型实例 Date d = Date.from(in…
创建ndarray   (1)使用array函数 接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的numpy数组. import numpy as np #将一个由数值组成列表作为参数调用'array' data=[6,7.5,8,0,1] arr=np.array(data) arr #将序列包含序列转化成二维的数组 data1=[[1,2,3,4],[5,6,7,8]] arr1=np.array(data1) arr1 arr1.ndim arr1.shape arr1…
这又是一个新的开始,对象的重要性不言而喻.在JavaScript中创建对象是十分容易的,之前聊过的对象字面量和构造函数都可以达到目的.但是本篇中,我们越过那些方法,以寻求一些额外的对象创建模式. 本篇内容,我们将学到命名空间(namespace),依赖声明(dependency declaration).模块模式(module pattern).沙箱模式(sandbox pattern).它们都可以帮助您组织应用程序代码的结构,并且降低隐含的全局变量带来的后果.其他讨论的主题包括私有和特权成员.…
这一篇,我们主要来学习一下私有属性和方法以及模块模式. 三.私有属性和方法 JavaScript并没有特殊的语法来表示私有.保护.或公共属性和方法,在这一点上与Java或其他语言是不同的.JavaScript中所有对象的成员是公共的: var myobj = { myprop:1, getProp: function() { return this.myprop; } }; console.log(myobj.myprop); // 'myprop'是共有可访问的 console.log(myo…