JAVA网站制作之《java与形式》念书条记 ----形式计划的...
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的条记|计划里氏代换准绳----LSP
观点:一个软件实体假如利用一个父类的话,那末必定合用于其之类,并且不克不及发觉出父类和子类的区分。
里氏代换准绳是承继复用的基石。只要当衍生类能够交换失落基类,软件单元不会遭到影响时,基本类才真正被复用,而衍生类才干在基本类上增添新的举动。
JAVA中的上塑外型既是里氏代换准绳的表现。
依附倒转准绳-----DIP
广义依附干系。
依附干系(Dependency)类与类之间的一种毗连,依附老是单向的。一各种依附于另外一各种的界说。一团体(Person)能够买车(Car)和屋子(House),Person类依附于Car类和House类。
一样平常而言依附干系在Java中表现为部分变量、办法参数和对静态办法的挪用。换言之,一个类A的某一个部分变量的范例是另外一个类B,那末A类就依附于B类;假如一个办法的参数是另外一个类B的实例,那末这个类A就依附于B类;假如A类挪用B类的静态办法,那末A类依附于B类。
狭义的三种依附干系。这里依附又称耦合
l零耦合干系(NilCoupling)。两个类没有耦合干系。
l详细耦合干系(ConcreteCoupling)。详细性的耦合干系产生在两个详细类(可实例化的)之间,经过一各种对另外一个类间接使用形成。
l笼统耦合干系(AbstractCoupling)。笼统耦合干系产生在一个详细类和一个笼统类(或接口)之间,使两个必需产生干系的的类之间存在最年夜的天真性。
依附倒转准绳寄义:笼统不该当依附于细节,细节应该依附与笼统。
依附倒转准绳请求:要针对接口编程,不要针对完成编程。
针对接口编程的意义是说:应该利用java接口和笼统类举行变量范例的声明、参数范例的声明、前往范例的声明、数据范例的转换等。
要包管这一点:一个详细类应该只完成接口和笼统类中声明的办法,而不该当给出过剩的办法。
Listemployees=newVector();
个中:List称变量employees的静态范例。
Vector称变量employees的实践范例。
在良多情形下,一个java程序必要援用一个对象。这个时分,假如这个对象又一个笼统范例的话,应该利用这个对象的笼统范例作为变量的静态范例。------这就是针对接口编程的详细寄义。
接口断绝准绳----------ISP
寄义:利用多个专门的接口要比利用单一的总接口要好!
从客户类角度上看:一个类对别的一个类的依附性应该是创建在最小的接口之上。
接口的分别间接带来范例的分别。
方针就是不向客户类供应不用要的举动。
分解聚合复用准绳--------CARP
联系关系,聚合、分解。
分解和聚合都是联系关系的特别品种。聚合暗示“具有”干系或全体与部分的干系;而分解则是用来暗示一种强的多的“具有”。在一个分解的干系里,部分和全体的性命周期是一样的。一个分解的新的对象完整用又对其他构成部分的安排权。包含他们的创立和泯没。组合而成的对象对构成部分的内存分派、内存开释有相对的义务。
进一步讲。一个分解的多重性不克不及凌驾1,换言之,一个分解的干系中,部分对象不克不及于另外一个分解干系对象共享。
分解一般了解为:值的聚合。而聚合则是:援用的聚合。
分解和聚合是将已有的对象归入到新的对象中,使之成为新对象的一部分,因而新的对象能够挪用已由对象的功效。到达复用的目标。
长处:
l新对象存取成份对象的独一办法是经由过程成份对象的接口。
l这类复用是黑箱复用,埋没了成份对象的外部细节。
l这类复用撑持包装。
l这类复用依附性较小。(耦合度低)
l每个新类能够将核心会合在一个义务上。
l这类复用能够在运转时静态举行。新对象能够静态援用于成份对象范例的子对象。
弱点就是:
经由过程这类复用制作的体系一般会有较多的对象必要办理。
“分解聚合复用能够替换承继复用完成任一项功效。”
只管承继是一种十分主要的手腕可是,应该起首思索分解聚合。
迪米特法例------LoD
又叫起码常识准绳:一个对象应该对其他对象尽量少的了解。
几种表述:
l至于你间接的伴侣们通讯。
l不要跟“生疏人”措辞。
l每个软件单元对其他单元用有尽量少的常识,并且范围于那些于本单元亲切相干的软件单元。
关于“伴侣”的商定:
l以后对象自己(THIS)。
l以参数情势传进到以后对象办法中的对象。
l以后对象的实例变量间接援用的对象。
l以后对象的实例变量假如是个会萃那末会萃中的元素也是“伴侣”。
l以后对象创立的对象。
狭义迪米特法例
软件体系中,一个模块计划的好欠好最次要、最主要的标记,就是该模块在多年夜水平大将本人的外部数据和其他完成细节埋没起来。一个计划好的模块能够将它一切的完成细节埋没起来,很完全的将供应给外界的API和本人的完成分别开来。如许一来模块于模块之间的通讯仅仅经由过程相互的API,而不睬会模块外部的事情细节。这即是:“信息的埋没”—“封装”。
狭义迪米特法例请求:
l在类的分别上,应该创立弱耦合的类。类之间的耦合性越低,越有益于复用。
l在类的计划布局上,每个类都应尽量的下降成员的会见权限。
l在类的计划上,只需有大概一个类应该计划成稳定类。(final)。
l在对其他类的援用上,各对象对其他对象的援用应降到最低。
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 是一种为 Internet发展的计算机语言 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 是一种语言,用以产生「小应用程序(Applet(s)) 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 是一种使用者不需花费很多时间学习的语言 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 Java是一种计算机编程语言,拥有跨平台、面向对java 是一种突破用户端机器环境和CPU 是一种语言,用以产生「小应用程序(Applet(s)) Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
页:
[1]