- 浏览: 3489 次
- 性别:
- 来自: 西安
最新评论
文章列表
java提供了Observer接口和Observable类,可以很容易实现一个对象对另一个对象的观察。但同时也存在一些问题,至少个人是这么认为的:
observer对observable的观察行为是由前者发出,而原生java中的这种关系是由Observable的addObserver方法来建立的。虽然观察者模型中大概就是这么描述的,但总感觉有些别扭。比如我要看一个美女,总不能由她来确定我是否可以观察她吧。
原生的被观察者需要继承Observable类,但是被观察者也需要继承其他类时就会出现冲突。如果把Observable实例作为一个属性,因为setChange方法是protect无法调用 ...
- 2017-10-09 23:33
- 浏览 437
- 评论(0)
之前的写过一篇关于js类的《文章》,主要是贴了一下代码和用法,功能上也有些欠缺。新版的Class增加了私有属性、接口两个功能。需要注意的是继承、调用父类方法、使用私有方法都是很耗费资源的,如果非得使用尽量减少继承的层数。(本人的小demo)
主要贴一下私有属性和接口用法:
1、私有属性
//设置私有属性this.$(key,value);获取私有属性:this.$(key);
Class('Dog',{
initialize:function(){
//为Dog设置私有属性name
this.$('name','dog');
},
speak:functi ...
记得大学时学到过解析字符串四则表达式,好像是数据结构里的课程。具体的内容都忘掉了,也找不到数据机构课本,就在网上找了些相关资料,现在用js实现一下。具体思路是把普通的表达式转换为前置或者后置表达式,然后通过转换后的表达式来计算。
当然,是有需求了才这么做。在js中通过eval或着Function都可以实现类似功能。通过测试,在非ie浏览器中解析表达式的效率比eval(Function)高,在ie中正好相反。由于客户的大多使用的是ie,就采用了Function的方式。
代码如下:
(function () {
var priority = {
'*': 2 ...
之前写过自己的js框架,有比较完善的事件体系。当后台java代码用到类似功能时,发现写法相当繁琐,就开发了一个简单的事件系统。
用法如下:
1、定义监听器
public class PageRequestListener implements IListener {
@Override
public void execute(Event event) {
//request为event的自定义属性
HttpServletRequest request=event.getProperty("request" ...
js类有很多中写法,网上也有很多现成的库,都有各自的优缺点,但用起来都不太顺手。所以总结改进后,写了自己的类,只图用起来顺手,看起来顺眼。
比较喜欢mootools,语法和它类似。initialize为构造方法,statics为静态属性及方法,superclass为父类;在当前方法中调用父类方法使用this.callSuper(),在当前方法中调用父类的其它方法this.invokeSuper('methodName').execute(args);
js中类的写法有一个痛点,即没法完全实现私有属性方法、受保护属性方法。mootools中有相关的内容,但也只是在继承的层面上实现部分功能,并 ...