Posted: Wed Oct 29, 2014 11:37 am Post subject: Factory Pattern
یکی از پر مصرف ترین الگوهای طراحی در جاوا می باشد. این نوع الگوی طراحی زیر مجموعه Creational pattern می باشد و یکی از بهترین راه های ایجاد شی می باشد. در الگوی Factory اشیا را بدون افشای منطق ساخت توسط کلاینت و با اشاره به اشیای جدید ایجاد شده با استفاده از اینترفیس های معمول ایجاد می شود.
Posted: Wed Oct 29, 2014 1:25 pm Post subject: مواد لازم برای Factory Pattern
گام اول:
یک اینترفیس می سازیم به اسم Shape که یک پراسیجر خروجی void دارد به نام draw .
سه تا کلاس می سازیم به اسم های Rectangle, Square, Circle که Shape را implement می کنند. و تابع draw را هم پیاده می کنند.
گام بعدی:
ساختن یک شی به نام ShapeFactory هست که تابعی دارد به نام getShape() این تابع خروجی از نوع Shape دارد که قرار است اشیا گام اول را ایجاد کند. کلاس دیگری می سازیم به نام FactoryPatternDemo که در آن برنامه را ایجاد می کنیم :
Step 1
Create an interface:
Shape.java
public interface Shape {
void draw();
}
Step 2
ساخت کلاس هایی که از اینترفیس فوق نشات می گیرند:
Rectangle.java
public class Rectangle implements Shape {
@Override
public void draw(){
System.out.println("Inside Rectangle::draw() method. " );
}
}
Square.java
public class Square implements Shape {
@Override
public void draw(){
System.out.println("Inside Square::draw() method. " );
}
}
Circle.java
public class Circle implements Shape {
@Override
public void draw(){
System.out.println("Inside Circle::draw() method. " );
}
}
Posted: Wed Oct 29, 2014 1:29 pm Post subject: ساخت کارخانه
ساخت کارخانه برای تولید اشیا از کلاس های داده شده در پست قبلی:
public class ShapeFactory{
//use getShape method to get object of type shape
public Shape getShpe(String shapeType)
if(shapeType==null)
return null;
}
if(shapeType.equalsIgnoreCase("CIRCLE)){
return new Circle();
}else if (shapeType.equalsIgnoreCase("RECTANGLE")){
return new Rectangle();{
else if(shapeType.equalsIgnoreCase("SQUARE")){
return new Square();
}
return null;
}
}
Posted: Wed Oct 29, 2014 1:32 pm Post subject: استفاده از Pattern Factor
FactoryPatternDemo.java
public class FactoryPatternDemo{
public static void main(String[] args){
ShapeFactory shapeFactory = new ShapeFactory();
Shape shape1=shapeFactory.getShape("Circle)");
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum