《Java与模式》重点总结05Word文档格式.docx
- 文档编号:2954870
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:16
- 大小:249.10KB
《Java与模式》重点总结05Word文档格式.docx
《《Java与模式》重点总结05Word文档格式.docx》由会员分享,可在线阅读,更多相关《《Java与模式》重点总结05Word文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
*ReturnstheYcoordinateofthepointindoubleprecision.
publicdoublegetY(){
returny;
*Returnsthelocationofthispoint.Thismethodisincludedfor
*completeness,toparallelthe<
code>
getLocation<
/code>
methodof
*<
Component<
.
*
*@returnacopyofthispoint,atthesamelocation.
publicPointgetLocation(){
returnnewPoint(x,y);
*Setsthelocationofthepointtothespecificedlocation.Thismethodis
*includedforcompleteness,toparallelthe<
setLocation<
*methodof<
*@paramp
*apoint,thenewlocationforthispoint.
publicPointsetLocation(Pointp){
returnnewPoint(p.x,p.y);
*Changesthepointtohavethespecificedlocation.
p>
*Thismethodisincludedforcompleteness,toparallelthe
methodof<
.Itsbehavior
*isidenticalwith<
move(int,&
nbsp;
int)<
*@paramx
*the<
i>
x<
/i>
coordinateofthenewlocation.
*@paramy
y<
publicPointsetLocation(intx,inty){
*Setsthelocationofthispointtothespecifiedfloatcoordinates.
publicPointsetLocation(doublex,doubley){
returnnewPoint((int)Math.round(x),(int)Math.round(y));
*Movesthispointtothespecificedlocationinthe
*(<
&
<
)coordinateplane.Thismethodisidenticalwith
setLocation(int,&
publicPointmove(intx,inty){
*Translatesthispoint,atlocation(<
),by
dx<
alongthe<
axisand<
dy<
alongthe
axissothatitnowrepresentsthepoint(<
&
+<
<
*&
).
*thedistancetomovethispointalongthe<
axis.
publicPointtranslate(intx,inty){
returnnewPoint(this.x+x,this.y+y);
*Determineswhetheraninstanceof<
Point2D<
isequaltothis
*point.Twoinstancesof<
areequalifthevaluesof
*their<
and<
memberfields,representingtheir
*positioninthecoordinatespace,arethesame.
*@paramobj
*anobjecttobecomparedwiththispoint.
*@return<
true<
iftheobjecttobecomparedisaninstanceof
andhasthesamevalues;
<
false<
*otherwise.
publicbooleanequals(Objectobj){
if(objinstanceofPoint){
Pointpt=(Point)obj;
return(x==pt.x)&
(y==pt.y);
}
returnsuper.equals(obj);
*Returnsastringrepresentationofthispointanditslocationinthe
)coordinatespace.Thismethodisintendedtobe
*usedonlyfordebuggingpurposes,andthecontentandformatofthe
*returnedstringmayvarybetweenimplementations.Thereturnedstringmay
*beemptybutmaynotbe<
null<
*@returnastringrepresentationofthispoint.
publicStringtoString(){
returngetClass().getName()+"
[x="
+x+"
y="
+y+"
]"
;
}
十三、策略(Strategy)模式
packagecom.javapatterns.strategy.sortarray;
abstractpublicclassSortStrategy{
publicabstractvoidsort();
publicclassBinSortextendsSortStrategy{
publicvoidsort(){
//sortinglogichere
publicclassBubbleSortextendsSortStrategy{
publicclassHeapSortextendsSortStrategy{
publicclassQuickSortextendsSortStrategy{
publicclassRadixSortextendsSortStrategy{
publicclassSorter{
*@linkaggregation
*@directed
privateSortStrategysortStrategy;
sortStrategy.sort();
publicvoidsetSortStrategy(SortStrategysort){
this.sortStrategy=sort;
(3)其它类图
十四、模版方法(TemplateMethod)模式
packagecom.javapatterns.templatemethod.InterestRate;
abstractpublicclassAccount{
protectedStringaccountNumber;
publicAccount(){
accountNumber=null;
publicAccount(StringaccountNumber){
this.accountNumber=accountNumber;
finalpublicdoublecalculateInterest(){
doubleinterestRate=doCalculateInterestRate();
StringaccountType=doCalculateAccountType();
doubleamount=calculateAmount(accountType,accountNumber);
returnamount*interestRate;
abstractprotectedStringdoCalculateAccountType();
abstractprotecteddoubledoCalculateInterestRate();
finalpublicdoublecalculateAmount(StringaccountType,StringaccountNumber){
//retrieveamountfromdatabase...hereisonlyamock-up
return7243.00D;
publicclassMoneyMarketAccountextendsAccount{
publicStringdoCalculateAccountType(){
return"
MoneyMarket"
publicdoubledoCalculateInterestRate(){
return0.045D;
publicclassCDAccountextendsAccount{
CertificateofDeposite"
return0.065D;
publicclassClient{
privatestaticAccountacct=null;
publicstaticvoidmain(String[]args){
acct=newMoneyMarketAccount();
System.out.println("
InterestearnedfromMoneyMarketaccount="
+acct.calculateInterest());
acct=newCDAccount();
InterestearnedfromCDaccount="
十五、观察者(Observer)模式
1、方案一
packagecom.javapatterns.observer;
publicinterfaceSubject{
publicvoidattach(Observerobserver);
publicvoiddetach(Observerobserver);
voidnotifyObservers();
importjava.util.Vector;
importjava.util.Enumeration;
publicclassConcreteSubjectimplementsSubject{
*@associates<
{Observer}>
*@supplierCardinality0..*
privateVectorobserversVector=newVector();
publicvoidattach(Observerobserver){
observersVector.addElement(observer);
publicvoiddetach(Observerobserver){
observersVector.removeElement(observer);
publicvoidnotifyObservers(){
Enumerationenumeration=observers();
while(enumeration.hasMoreElements()){
((Observer)enumeration.nextElement()).update();
publicEnumerationobservers(){
return((Vector)observersVector.clone()).elements();
publicinterfaceObserver{
voidupdate();
importjava.util.Observable;
importjava.util.Observer;
publicclassConcreteObserverimplementsObserver{
publicvoidupdate(Observableo,Objectarg){
//Writeyourcodehere
2、方案二
packagecom.javapatterns.observer.variation;
abstractpublicclassSubject{
Attachedanobserver."
);
System.out.println("
Beforenotifying"
publicclassConcreteSubjectextendsSubject{
privateStringstate;
publicvoidchange(StringnewState){
state=newState;
this.notifyObservers();
publicvoidupdate(){
Iamnotified"
privatestaticConcreteSubjectsubject;
privatestaticObserverobserver;
subject=newConcreteSubject();
observer=newConcreteObserver();
subject
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java与模式 Java 模式 重点 总结 05