当前位置: 首页 > news >正文

网站建设兼职平台邢台市住建局

网站建设兼职平台,邢台市住建局,有哪些简单的网站,定制建站 app建设简单工厂不是一个标准的设计模式#xff0c;但是它实在是太常用了#xff0c;简单而又神奇#xff0c;所以还是需要好好掌握的#xff0c;就当是对学习设计模式的热身运动吧。为了保持一致性#xff0c;我们尽量按照学习其它模式的步骤来进行学习。1 场景问题大家都知道但是它实在是太常用了简单而又神奇所以还是需要好好掌握的就当是对学习设计模式的热身运动吧。为了保持一致性我们尽量按照学习其它模式的步骤来进行学习。1  场景问题大家都知道在Java应用开发中要“面向接口编程”。那么什么是接口接口有什么作用接口如何使用一起来回顾一下1.1  接口回顾(1)Java中接口的概念在Java中接口是一种特殊的抽象类跟一般的抽象类相比接口里面的所有方法都是抽象方法接口里面的所有属性都是常量。也就是说接口里面是只有方法定义而不会有任何方法实现。(2)接口用来干什么        通常用接口来定义实现类的外观也就是实现类的行为定义用来约束实现类的行为。接口就相当于一份契约根据外部应用需要的功能约定了实现类应该要实现的功能但是具体的实现类除了实现接口约定的功能外还可以根据需要实现一些其它的功能这是允许的也就是说实现类的功能包含但不仅限于接口约束的功能。通过使用接口可以实现不相关类的相同行为而不需考虑这些类之间的层次关系接口就是实现类对外的外观。(3)接口的思想根据接口的作用和用途浓缩下来接口的思想就是“封装隔离”。通常提到封装是指对数据的封装但是这里的封装是指“对被隔离体的行为的封装”或者是“对被隔离体的职责的封装”而隔离指的是外部调用和内部实现外部调用只能通过接口进行调用而外部调用是不知道内部具体实现的也就是说外部调用和内部实现是被接口隔离开的。(4)使用接口的好处        由于外部调用和内部实现被接口隔离开了那么只要接口不变内部实现的变化就不会影响到外部应用从而使得系统更灵活具有更好的扩展性和可维护性这也就是所谓“接口是系统可插拔性的保证”这句话的意思。(5)接口和抽象类的选择既然接口是一种特殊的抽象类那么在开发中何时选用接口何时选用抽象类呢对于它们的选择在开发中是一个很重要的问题特别总结两句话给大家优先选用接口在如下情况应选择抽象类既要定义子类的行为又要为子类提供公共的功能1.2  面向接口编程面向接口编程是Java编程中的一个重要原则。在Java 程序设计里面非常讲究层的划分和模块的划分。通常按照三层来划分Java程序分别是表现层、逻辑层、数据层它们之间都要通过接口来通讯。在每一个层里面又有很多个小模块一个小模块对外也应该是一个整体那么一个模块对外也应该提供接口其它地方需要使用到这个模块的功能都应该通过此接口来进行调用。这也就是常说的“接口是被其隔离部分的外观”。基本的三层结构如图1所示图1  基本的三层结构示意图在一个层内部的各个模块交互也要通过接口如图2所示图2  一个层内部的各个模块交互示意图各个部分的接口具体应该如何去定义具体的内容是什么不去深究那是需要具体问题具体分析的这里只是来学习设计的方法。上面频频提到“组件”那么什么是组件呢先简单的名词解释一下所谓组件从设计上讲组件就是能完成一定功能的封装体。小到一个类大到一个系统都可以称为组件因为一个小系统放到更大的系统里面去也就当个组件而已。事实上从设计的角度看系统、子系统、模块、组件等说的其实是同一回事情都是完成一定功能的封装体只不过功能多少不同而已。继续刚才的思路大家会发现不管是一层还是一个模块或者一个组件都是一个被接口隔离的整体那么下面我们就不去区分它们统一认为都是接口隔离体即可如图3所示图3  接口隔离体示意图既然在Java中需要面向接口编程那么在程序中到底如何使用接口来做到真正的面向接口编程呢1.3  不用模式的解决方案回忆一下以前是如何使用接口的呢假设有一个接口叫Api然后有一个实现类Impl实现了它在客户端怎么用这个接口呢通常都是在客户端创建一个Impl的实例把它赋值给一个Api接口类型的变量然后客户端就可以通过这个变量来操作接口的功能了此时具体的结构图如图4图4  基本的接口和实现还是用代码来说明会更清楚一些。(1)先定义接口Api示例代码如下Java代码/*** 某个接口(通用的、抽象的、非具体的功能)*/public interface Api {/*** 某个具体的功能方法的定义用test1来演示一下。* 这里的功能很简单把传入的s打印输出即可* param s 任意想要打印输出的字符串*/public void test1(String s);}(2)既然有了接口自然就要有实现定义实现Impl示例代码如下Java代码/*** 对接口的实现*/public class Impl implements Api{public void test1(String s) {System.out.println(Now In Impl. The input ss);}}(3)那么此时的客户端怎么写呢按照Java的知识接口不能直接使用需要使用接口的实现类示例代码如下Java代码/*** 客户端测试使用Api接口*/public class Client {public static void main(String[] args) {Api api new Impl();api.test1(哈哈不要紧张只是个测试而已);}}1.4  有何问题上面写得没错吧在Java的基础知识里面就是这么学的难道这有什么问题吗请仔细看位于客户端的下面这句话Java代码Api api new Impl();然后再想想接口的功能和思想发现什么了仔细再想想你会发现在客户端调用的时候客户端不但知道了接口同时还知道了具体的实现就是Impl。而接口的思想是“封装隔离”而Impl这个实现类应该是被接口Api封装并同客户端隔离开的也就是说客户端根本就不应该知道具体的实现类是Impl。有朋友说那好我就把Impl从客户端拿掉让Api真正的对实现进行“封装隔离”然后我们还是面向接口来编程。可是新的问题出现了当他把“new Impl()”去掉过后发现他无法得到Api接口对象了怎么办呢把这个问题描述一下在Java编程中出现只知接口而不知实现该怎么办就像现在的Client它知道要使用Api接口但是不知由谁实现也不知道如何实现从而得不到接口对象就无法使用接口该怎么办呢请看下节解决方案本文链接研磨设计模式之简单工厂模式(场景问题)转自http://chjavach.iteye.com/blog/800325
http://www.zqtcl.cn/news/63687/

相关文章:

  • 化工行业网站模板震旦网站谁做的
  • 如何建立网站视频企业网站建设推荐兴田德润
  • 乌兰察布做网站公司中信建设有限责任公司电话打不通
  • 如果做网站接口logo图片设计
  • 诚聘网站开发sns社区网站开发
  • 卡盟网站建设wordpress商城实战教程
  • 荆门哪里做网站苏州广告公司招聘
  • 上海专业网站建设公司有哪些WordPress怎么加按钮
  • 备案期间网站关闭佛山做企业网站公司
  • 网站页面设计规范一般通过血液传染的病有哪些
  • 打造自己的网站门户网站包括哪些
  • 如何使用爱站网上海网站开发方案
  • iis6.0不能新建网站经营网站如何挣钱
  • 不会编程能建网站居众装饰
  • 江门网络建站模板提交网站收录入口
  • 服务器做网站好铭坐网站建设
  • 湖南做网站 磐石网络界面设计最好的网站
  • 个人网站建设免费分析wordpress上传中文文件夹
  • 罗湖附近网站建设公司深圳市宝安区住房和建设局网站
  • 网站开发技术服务费合同范本wordpress升级原理
  • 帝国音乐网站怎么做数据表seo排名优化软件有用
  • 南昌住房和城乡建设部网站电话珠海网站建设价格
  • 可信网站验证服务证书福建建设厅网站
  • 云访客类似的网站揭阳网站建设揭阳
  • 来宾城乡建设局网站国际贸易进出口
  • 关于h5的网站模板推广普通话作文500字
  • 杭州建站官方网站举例
  • 网站建设公司电话销售客源xxx学校校园网站建设实践
  • 建筑企业网站源码wordpress插件分享显示
  • 网站建设包含美工绍兴企业网站推广