首页 \ 问答 \ hadoop 函数包放在哪个文件里

hadoop 函数包放在哪个文件里

不是有个自带的wordcount.java程序嘛~开始import了一堆函数包,我想知道是在hadoop里面哪个文件夹里,或者网上哪里能找到,急需啊。
更新时间:2022-02-17 20:02

最满意答案

您好,

工厂模式基本上是最常用的设计模式之一,设计模式通俗的来说就是“做某件事的通用的方法”,这些方法都是被广泛使用、经过长时间“考验”的,对于解决某个特定的问题有非常好的效果。

设计模式基本上到了“软件设计”的层面,它与具体的程序设计语言无关,也没有实现,只是包含了一个大致的架构,它是一种思想。

如果您想学习设计模式,我推荐两本书:《设计模式:可复用面向对象软件的基础》和《设计模式精解》,书很枯燥,但绝对是程序员必读教材。

工厂模式我大致解释一下,比如写一个word那样的程序,它可以打开doc、rtf、txt等好几种文件格式,而对于这些文件的处理方法是不同的,比如txt就不能保存文字颜色字体之类的信息,那么我可能这样设计:

word主程序,一个类Application,它有一个虚方法(或抽象方法,不过C#中抽象方法只能在抽象类里)叫OpenFile,用来打开指定的文件,然后返回一个Doucument类的实例,这个类可以直接把它的内容显示在屏幕上,word处理的主体是这个类。这个Application类还有很多方法比如关闭打印之类的。

然后从Application类派生出一个子类TxtApplication,父类中OpenFile是虚方法,没有实现,在子类中重写这个方法,打开Txt文档,读取txt文件,然后返回一个Document类。

然后再从Application里派生一个子类RichTxtApplication,也重写OpenFile,它打开rtf文档,从里面读取相应的文档和文档的格式信息,然后也返回一个Document类。

最后,根据一定的策略(比如用户要打开的文件的扩展名是“txt”,就实例化一个txtApplication,然后调用它的OpenFile方法获得Document;如果扩展名是“rtf”,就实例化一个rtfApplication,调用它的OpenFile方法获得Document)。

这样,Application类中的OpenFile方法就叫做工厂方法,这种“一个类希望由它的子类指定它所创建的对象”的方法就是工厂模式。

这样说可能太抽象了,设计模式不是很容易就能说清楚的,建议您看看那两本书。

其他回答

个人认为:工厂模式就是现实生活中一个模型  然后 好多东西根据模型实现细节
  这些东西可以根据不同的材料来生成.模型不干涉

在说点比如 写一个javabean  userbean 然后写一个接口dao 然后在写一个接口userdao 继承dao 然后写一个类继承userdao 这就算是一个简单工厂吧
你给一个参数 然后出个结果
哦,原来如此.
C#的设计模式不是很简单的问题啊

相关问答

更多
  • IT是什么意思[2022-06-02]

    IT 是Information Theory英文的缩写,"信息技术"的意思。 指计算机、通讯及相关技术
  • 建议你看一下大话设计模式这本书,不错的
  • 引用: 工厂方法 你会建立一个专门生产Sample实例的工厂: public class Factory{ public static Sample creator(int which){ //getClass 产生Sample 一般可使用动态类装载装入类。 if (which==1) return new SampleA(); else if (which==2) return new SampleB(); } } 那么在你的程序中,如果要实例化Sample时.就使用 Sample sampleA=Fac ...
  • factory模式不需要建立什么包,完全得靠你对factory模式的理解,工厂模式基本上应该是体现了一个多态的概念,用户只关心结果,而不需要关心其具体过程... 工厂模式有三个参与者,抽象产品(Product)、工厂(Creator)和具体产品(ConcreteProduct)。客户只会看到工厂和抽象产品。 public interface Product{ public String getName(); } public class ConcreteProduct implements Product{ ...
  • 工厂模式是最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。   著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给系统带来更大的可扩展性和尽量少的修改量。
  • 您好, 工厂模式基本上是最常用的设计模式之一,设计模式通俗的来说就是“做某件事的通用的方法”,这些方法都是被广泛使用、经过长时间“考验”的,对于解决某个特定的问题有非常好的效果。 设计模式基本上到了“软件设计”的层面,它与具体的程序设计语言无关,也没有实现,只是包含了一个大致的架构,它是一种思想。 如果您想学习设计模式,我推荐两本书:《设计模式:可复用面向对象软件的基础》和《设计模式精解》,书很枯燥,但绝对是程序员必读教材。 工厂模式我大致解释一下,比如写一个word那样的程序,它可以打开doc、rtf、t ...
  • 工厂是指生产实例的地方。那就简单一个,直接命名为createInstance()。此方法通常是静态的,而且还会带有参数和返回值。举个例子:例如牛、羊、马、狗都继承动物类,那createInstance()的返回值应该为 动物(因为工厂就是生产动物的嘛,所以返回值也应该为动物),参数应该为动物名称(这样工厂根据名称才知道你要生产哪种动物啊)。这样就可以根据传入的的动物名称,产生一个动物实例。createInstance的实现:switch(动物名称) case 牛:return new 牛();case 羊: ...
  • NS 是在琴体上面什么都不涂,有种自然木质的感觉。NAT就是在琴体上涂上一层照光漆,有种光泽感,但是价格比较贵些。

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)