Upload
sandipan-saha
View
220
Download
0
Embed Size (px)
Citation preview
7/23/2019 sdlab.pdf
1/29
1.Expert PatternPattern Instance:
Class Diagram
Implementation:ProductDescription.javaimport java.util.Scanner;public class ProductDescription {
public SaleCounter saleCounter;private SaleCounter sc;
private foat price ;public foat getPrice() {
Scanner sr = new Scanner(Sstem.in);Sstem.out.println(!"nter t#e price!);price = sr.ne$t%loat();return price;
&&
7/23/2019 sdlab.pdf
2/29
Sale.javapublic class Sale {
private foat total;public foat get'otal() {
ProductDescription pd = new ProductDescription();Saleinetem sli = new Saleinetem();
total = pd.getPrice()*sli.get+uantit();return total;
&&SaleLineItem.javaimport java.util.Scanner;public class Saleinetem {
public SaleCounter saleCounter;private SaleCounter sc;private int ,uantit;public int get+uantit() {
Scanner sr = new Scanner(Sstem.in);
Sstem.out.println(!"nter t#e ,uantit!);,uantit = sr.ne$tnt();return ,uantit;
&&SaleCounter.javapublic class SaleCounter {
public Saleinetem saleinetem;private ProductDescription pd;private Sale s;private Saleinetem sli;public static void main(String- args) {// '0D0 1uto2generated met#od
stubfoat total;Sale s = new Sale();total = s.get'otal();Sstem.out.println(!'otal is!3total);
&&OUPU:Enter the price100Enter the quantity25
Total is2500.0
!.Controller PatternPattern Instance
7/23/2019 sdlab.pdf
3/29
Class Diagram
Implementation:Client.javaimport java.util.Scanner;public class Client {
public '#eController t#eController;public static SaleController getController() {
SaleController sc = new SaleController();
Sale s =new Sale();4iew v = new 4iew();sc.setSale(s);sc.set4iew(v);return sc;
&public static void main(String- args) {// '0D0 1uto2generated met#od
stubSaleController sc = getController();
7/23/2019 sdlab.pdf
4/29
Scanner sr = new Scanner(Sstem.in);Sstem.out.println(!"nter +uantit!);int ,uantit = sr.ne$tnt();Sstem.out.println(!"nter price!);foat price = sr.ne$t%loat();sc.e$ecute(,uantit5 price);
&&Sale.javapublic class Sale {
public SaleController saleController;public foat get'otal(int ,uantit5foat price) {// '0D0 1uto2generated
met#od stubreturn ,uantit*price;
&&SaleController.javapublic class SaleController {
public Client client;public void e$ecute(int ,uantit5foat price) {// '0D0 1uto2generated
met#od stubfoat result= sale.get'otal(,uantit5 price);view.displa(result);
&&"ie#.javapublic class 4iew {
public void displa(foat total) {// '0D0 1uto2generated met#od stubSstem.out.println(!'#e total sale!3total);
&&06'P6'Enter Quantity10Enter price25.2The total sale252.0
$.Pu%lis&er'Su%scri%er PatternPattern Instance
7/23/2019 sdlab.pdf
5/29
Class Diagram
Implementation:Indicator.java:import java.util.0bservable;import java.util.0bserver;public class ndicator implements 0bserver {
public void displa() {Sstem.out.println(!ndicator Data!);foat 7=(t#is.temperature) 2 (788);
foat 9=(788) 2 (t#is.temperature);i:(t#is.temperature 788)
Sstem.out.println(!'emperature is 0< >!37);else
Sstem.out.println(!'emperature is 0< >!39);7=(t#is.pressure) 2 (?8);9=(?8) 2 (t#is.pressure);i:(t#is.pressure ?8)
7/23/2019 sdlab.pdf
6/29
Sstem.out.println(!Pressure is 0< >!37);else
Sstem.out.println(!Pressure is 0< >!39);Sstem.out.println(!@n!);
&public ndicator(0bservable observable) {// '0D0 1uto2generated
constructor stubt#is.observable=observable;observable.add0bserver(t#is);
&public void update(0bservable o5 0bject arg) {
%urnaceData :urnaceData=(%urnaceData)o;t#is.pressure=:urnaceData.getPressure();t#is.temperature=:urnaceData.get'emperature();displa();
&&(urnaceStation.java
publicclassFurnaceStation {publicstaticvoidmain(String[ args! {
"" TODO#uto$generate% metho% stu&Furnace'ata %)newFurnace'ata(!*+eating,ontroll hc)new+eating,ontroll(%!*-n%icator i%)new-n%icator(%!*og'ata l%)newog'ata(%!*%.set/easurements(100.3!*%.set/easurements(010.3!*4
4
LogData.javaimport java.util.0bservable;
import java.util.0bserver;public class ogData implements 0bserver {
private foat temperature;public 0bject observable;
public void displa() {// '0D0 1uto2generated met#od stubSstem.out.println(!@nog Data!);Sstem.out.println(!Current 'emperature is >!3temperature);Sstem.out.println(!Current Pressure is >!3pressure);Sstem.out.println(!@n!);
&public ogData(0bservable observable) {// '0D0 1uto2generated
constructor stub
t#is.observable=observable;observable.add0bserver(t#is);
&public void update(0bservable o5 0bject arg) {
%urnaceData :urnaceData=(%urnaceData)o;t#is.pressure=:urnaceData.getPressure();t#is.temperature=:urnaceData.get'emperature();displa();
7/23/2019 sdlab.pdf
7/29
&&(urnaceData.javaimport java.util.0bservable;
public void setAeasurements(foat temp5foat p) {t#is.temperature = temp;
t#is.pressure=p;t#is.measurementC#anged();
&public void measurementC#anged() {// '0D0 1uto2generated met#od
stubt#is.setC#anged();t#is.noti:0bservers();
&&)eatingControl.javaimport java.util.0bservable;import java.util.0bserver;
public class BeatingControll implements 0bserver {public void displa() {
Sstem.out.println(!@nBeating Controll Data!);i:(t#is.temperature 788)
Sstem.out.println(!'emperature is more t#an 788!);else
Sstem.out.println(!'emperature is less t#an 788!);i:(t#is.pressure ?8)
Sstem.out.println(!Pressure is more t#an ?8!);else
Sstem.out.println(!Pressure is less t#an ?8!);&public BeatingControll(0bservable observable) {
t#is.observable=observable;observable.add0bserver(t#is);&
public void update(0bservable o5 0bject arg) {%urnaceData :urnaceData=(%urnaceData)o;t#is.pressure=:urnaceData.getPressure();t#is.temperature=:urnaceData.get'emperature();displa();
&&OUPU
Log Data
,urrent Temperature is 10.0,urrent 6ressure is 0.3Indicator Data
Temperature is 7 8y 0.06ressure is 7 8y 9.:Heating Controll Data
Temperature is more than 100
7/23/2019 sdlab.pdf
8/29
6ressure is less than ;0Log Data
,urrent Temperature is 0.0,urrent 6ressure is 10.3Indicator Data
Temperature is 7 8y 20.06ressure is 7 8y :0.99993Heating Controll Data
Temperature is less than 1006ressure is more than ;0
*.Command Processor PatternPattern Instance
Class Diagram
7/23/2019 sdlab.pdf
9/29
ImplementationPerson.java
publicclass6erson {publicvoidintE%itor a?eceitE%itor(!* 8ol% a,oncrete,omman% ) new8ol%(a?ecei
7/23/2019 sdlab.pdf
10/29
4elseif(arg[i.equals(Cun%oC!!{
i%.@n%o,lic=e%(!*4else
{System.out.println(C-n6ppercase!);&public void undo(){
Sstem.out.println(!'e$t Command>6ndo!);
&&
+.(or#ard',eceiverPattern Instance
7/23/2019 sdlab.pdf
11/29
Class Diagram
Implementationmainclass.javaimportDa
7/23/2019 sdlab.pdf
12/29
p1.ser
7/23/2019 sdlab.pdf
13/29
Class Diagram
Implementation
Client.java
publicclass,lient {publicSer
7/23/2019 sdlab.pdf
14/29
catch(E>ception e>!{
System.out.println(CSer
7/23/2019 sdlab.pdf
15/29
""System.out.println(CSert-nt(!L(publicclass,'S e&tends6rintSer
7/23/2019 sdlab.pdf
16/29
Class Diagram
Implementation/pplication.java
publicclass#pplication { private6ro>yEmailSeryemailser
7/23/2019 sdlab.pdf
17/29
Pro&$'mail%ervice.java
publicclass6ro>yEmailSertCBte>t!*
4publicvoidrec{ System.out.println(C?ecei4
0.(acadePattern Instance
Class Diagram
7/23/2019 sdlab.pdf
18/29
Implementation/mplier.java
publicclass#mpliier {privateString %escription*
private'
7/23/2019 sdlab.pdf
19/29
this.ampliier)ampliier*4
publicvoidon(! {"" TODO#uto$generate% metho% stu&System.out.println(%escriptionBC7nC!*
4publicvoido(! {"" TODO#uto$generate% metho% stu&
System.out.println(%escriptionBC7FFC!*4
publicvoidplay(String mo
7/23/2019 sdlab.pdf
20/29
hts.En%/o
7/23/2019 sdlab.pdf
21/29
ImplementationIs&ape.java
publicinterface-shape {publicvoidarea(!* ""co%e%publicvoidname(!* ""co%e%
4
mainclass.javaimportDat'ou&le(!!*System.out.println(CEnter the &ase P heightC!*double&)s.ne>t'ou&le(!*doubleh)s.ne>t'ou&le(!*t.setsiGe(& h!*c.name(!*c.area(!*t.name(!*
t.area(!*4
4
Circle.java
publicclass,ircle implements-shape {private'ou&le 6i).132* ""co%e%private'ou&le #rea*private'ou&le ?a%ius*publicvoidname(! {"" un co%e%
7/23/2019 sdlab.pdf
22/29
System.out.println(CThe Shape -s ,ircleC!*4
publicvoidarea(! {"" un co%e%doublearea)6iI ?a%iusI ?a%ius*System.out.println(C#rea 7 ,ircle CBareaBC sq.unitsC!*
44
riangle.javapublicclassTriangle implements-shape {
private'ou&le 8ase*private'ou&le +eight*private'ou&le #rea*publicvoidsetsiGe('ou&le &'ou&le h! {"" un co%e%
this.8ase)&*this.+eight)h*
4
publicvoidname(! {"" un co%e%System.out.println(CThe Shape -s TriangleC!*
4
publicvoidarea(! {"" co%e%doublearea)(8aseI +eight!"2**
System.out.println(C#rea 7 Triangle CBareaBC sq.unitsC!*4
4
13.Composite Pattern4#&ole part5Pattern Instance
Class Diagram
7/23/2019 sdlab.pdf
23/29
Implementation/pplication.java
importDat-nt(!*for(inti)0*iAn*iBB!{System.out.println(CEnter name o ,ol%'rin= P priceC!*c%)s.ne>t(!*price)s.ne>t'ou&le(!*items.a%%(new,ol%'rin=(c%C,ol% 'rin=Cprice!!*4,ol%'rin=Family6ac= amilypac=)new,ol%'rin=Family6ac=(items!*"" items.a%%(ne ,ol%'rin=(C,o=eCC,ol% 'rin=C20!!*
"" items.a%%(ne ,ol%'rin=(C/aGaCC,ol% 'rin=C15!!*ist item2)new#rrayist(!*"I item2.a%%(ne ,ol%'rin=(C,o=eCC,ol% 'rin=C20!!*
item2.a%%(ne ,ol%'rin=(C/aGaCC,ol% 'rin=C15!!*item2.a%%(ne ,ol%'rin=(C6epsiCC,ol% 'rin=C10!!*item2.a%%(ne ,ol%'rin=(C,o=eCC,ol% 'rin=C20!!*item2.a%%(ne ,ol%'rin=(C/aGaCC,ol% 'rin=C15!!*
I"System.out.println(CEnter num&er o 6arty 6ac=sC!*n)s.ne>t-nt(!*
7/23/2019 sdlab.pdf
24/29
for(inti)0*iAn*iBB!{System.out.println(CEnter name o ,ol%'rin= P priceC!*c%)s.ne>t(!*price)s.ne>t'ou&le(!*item2.a%%(new,ol%'rin=(c%C,ol% 'rin=Cprice!!*4,ol%'rin=6arty6ac= partypac=)new,ol%'rin=6arty6ac=(items!*System.out.println(C'iscount or ,ol% 'rin= Family 6ac=C!*System.out.println(amilypac=.get6rice(!!*System.out.println(C'iscount or ,ol% 'rin= 6arty 6ac=C!*System.out.println(partypac=.get6rice(!!*
44
ColdDrin6(amilPac6.javaimportDa
7/23/2019 sdlab.pdf
25/29
public void add(tem itm) {// '0D0 1uto2generated met#od stubitems.add(itm);
&public void addtems(ist list) {// '0D0 1uto2generated met#od stub
items.add1ll(list);&
public double getPrice() {// '0D0 1uto2generated met#od stubdouble sum=8;
:or(tem i>items){
sum3=i.getPrice();&
return sum;&public snc#roniFed void addC#ild(tem aGcomponent) {
snc#roniFed (aGcomponent) {mGc#ildren.add(aGcomponent);aGcomponent.setParent(t#is);
&&public snc#roniFed void removeC#ild(tem aGcomponent) {
snc#roniFed (aGcomponent) {i: (t#is == aGcomponent.getParent()) {
aGcomponent.setParent(null);&mGc#ildren.remove(aGcomponent);
&
&&Item.java
publicabstractclass-tem {publicabstractvoid7peration(!*publicabstractdoubleget6rice(!*publicvoidsetQuantity(! {"" TODO#uto$generate% metho% stu&4
private-tem mparent*public-tem get6arent(! {
returnmparent*4
publicvoidset6arent(-tem aparent! {mparent) aparent*
4
publicabstract,omposite get,omposite(!*4
((.)aster#%lava
Pattern Instance
7/23/2019 sdlab.pdf
26/29
Class Diagram
Implementation
main)aster.java
publicclassmain/aster {publicstaticvoidmain(String[ args! {
/aster master )new/aster(!*master.run(!*
44
)aster.java
publicclass/aster {
private?esource resource*private?esource res)new?esource(!*privateintsla
7/23/2019 sdlab.pdf
27/29
for(inti)0*iAsla
7/23/2019 sdlab.pdf
28/29
{%one)true*
4
publicSlaception e!{
44
44
Test)aster.java
pu&lic class Test/aster {pri
7/23/2019 sdlab.pdf
29/29