`

函数封装与faced设计模式

阅读更多

刚才看了下faced模式,其实早些时候接触过faced模式,记住它还是因为他的发音。好,闲话少说,下面咱们开始~疯狂的搞起。

 

faced模式具体大家可以google一下。

 

题目说的是函数封装和faced模式,其实主要想说的是函数封装。之所以提到faced模式,是因为感觉它与函数封装类似。初学Java的人会认为封装是对数据的封装。这本身没有错,可是问题是封装不止简单的对数据封装。还有函数的封装。

 

举个例子还说,你要写一个接口给你的团队的其他人用。你会怎么写?是要都告诉他怎么用吗?加入依赖条件是:x y 。

 

var result_of_handle_a = handle_a_function(a);
var result_of_handle_b = handle_b_function(b);
var result = handle_a_and_b(result_of_handle_a,result_of_handle_b);

 ok,这样做可以,下面我们讨论一下用这个接口的人做了什么事:

 

 

1看到handle_a_and_b_function ,知道要处理a的结果和b的结果做参数。

2.阅读handle_a_function ,知道这个处理a函数是干嘛的。

3.阅读handle_b_function ,知道这个处理b函数是干嘛的。

4.最后调用函数得到结果。

你看下每个用你接口的人都得做一次以上的步骤。如果这个函数被调用的多那将会是一个很大的时间量。所以我们要做封装。将对a和b的处理放在对handle_a_and_b这个函数中,先说函数。

function handle_a_and_b(a,b)
{
  var result_a = hand_a_function(a);
  var result_b = handle_b_function(b);  
  next ...
  return 
}

 也许你会发现这根本就没有少多少代码,但是从使用你接口的人看看他要做什么,他只要把a,b传进去,至于里面怎么处理,怎么给你构造接口,那根本不是你管辖的事,而且这样会大大的节省别人的时间。如果你觉得不爽,那你试想:你用别人写的这样的接口,受伤了吧。

这就是对函数的封装,我理解为faced模式,这样的好处,别人不需要知道你的内部实现,直接调用就可以。如果他真想知道的话,那他就自己跟进去看就好了。但是你的接口的主要目的是给别人用,而不是给别人看。这个过程是不是简单的多呢。

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics