Kaedah pelaksanaan
Kami akan mencipta antara muka Shape dan kelas konkrit yang melaksanakan antara muka Shape. ShapeFactory kelas kilang akan ditakrifkan dalam langkah seterusnya.
FactoryPatternDemo Ini ialah kelas tunjuk cara yang akan menggunakan ShapeFactory untuk mendapatkan objek Shape. Ia akan menghantar maklumat (CIRCLE/RECTANGLE/SQUARE) kepada ShapeFactory untuk mendapatkan jenis objek yang diperlukan.
Struktur pelaksanaan corak kilang ditunjukkan dalam rajah di bawah-
java-61.jpg
Langkah 1
Buat antara muka-
Shape.java
publicinterfaceShape{
voiddraw();
}
Langkah 2
Buat kelas konkrit yang melaksanakan antara muka yang sama. Beberapa kategori ditunjukkan di bawah-
Rectangle.java
publicclassRectangleimplementsShape{
@Batal
publicvoiddraw(){
System.out.println("InsideRectangle::draw()kaedah.");
}
}
Square.java
publicclassSquareimplementsShape{
@Override
publicvoiddraw(){
System.out.println("InsideSquare::draw()kaedah.");
}
}
Circle.java
publicclassCircleimplementsShape{
@Batal
publicvoiddraw(){
System.out.println("Kaedah InsideCircle::draw().");
}
}
Langkah 3
Cipta kilang untuk menjana objek kelas tertentu berdasarkan maklumat yang diberikan.
ShapeFactory.java
publicclassShapeFactory{
//usegetShapemethodtogetobjectoftypeshape
publicShapegetShape(StringshapeType){
if(shapeType==null){
returnnull;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
returnnewCircle();
}elseif(shapeType.equalsIgnoreCase("RECTANGLE")){
returnnewRectangle();
}elseif(shapeType.equalsIgnoreCase("SQUARE")){
returnnewSquare();
}
returnnull;
}
}
Langkah 4
Gunakan kilang untuk mendapatkan objek kelas tertentu dengan menghantar maklumat seperti jenis.
FactoryPatternDemo.java
publicclassFactoryPatternDemo{
publicstaticvoidmain(String[]args){
ShapeFactoryshapeFactory=newShapeFactory();
//getanobjectofCircleandcallitsdrawmethod.
Shapeshape1=shapeFactory.getShape("CIRCLE");
//calldrawmethodofCircle
shape1.draw();
//getanobjectofRectangleandcallitsdrawmethod.
Shapeshape2=shapeFactory.getShape("RECTANGLE");
//calldrawmethodofRectangle
shape2.draw();
//getanobjectofSquareandcallitsdrawmethod.
Shapeshape3=shapeFactory.getShape("SQUARE");
//calldrawmethodofcircle
shape3.draw();
}
}
Langkah 5
Keputusan output pengesahan adalah seperti berikut-
Kaedah InsideCircle::draw().
InsideRectangle::draw()kaedah.
InsideSquare::draw()kaedah.
Atas ialah kandungan terperinci Bagaimana untuk menulis kod untuk corak reka bentuk kilang Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!