Educoder Java 面向对象-设计模式

第1关:单例模式练习

本关任务:实现设计模式中的单例模式,包括懒汉式和饿汉式

package step4;
class Singleton {   
    /***************Begin***********************/
    private static Singleton instance =null;
	public static Singleton getInstance(){
	     if (instance==null){
            instance=new Singleton();
		 }
			 return instance;	 
	}

     /*************End************************/  
}   
public class SingletonTest {
	public static void main(String args[]) {   
        Singleton s1 = null; // 声明对象  
        Singleton s2 = null; // 声明对象         
        s1 = Singleton.getInstance(); // 取得实例化对象  
        s2 = Singleton.getInstance(); // 取得实例化对象  
        System.out.println(s1 == s2);        
    }   


}

第2关:工厂模式

本关任务:编写静态工厂模式中的关键代码

package steo5;
//ProductA和ProductB需要实现的产品接口。
interface IProduct {
	void use();
}

//ProductA的具体实现。
class ProductA implements IProduct {

	public void use() {
		System.out.println("使用产品A");
	}
}

//ProductB的具体实现。
class ProductB implements IProduct {

		public void use() {
		System.out.println("使用产品B");
	}
}

//产品工厂类,负责根据参数创建产品实例。
class ProductFactory {
	/**********Begin********************/
    public static IProduct createProduct(String a){
		if(a=="A"){
			return new ProductA();
		}
		else
		return new ProductB();
	}
    
    /**********End********************/
}
public class SimpleFactory {
	public static void main(String[] args) {
		IProduct a = ProductFactory.createProduct("A");
		a.use();
		IProduct b = ProductFactory.createProduct("B");
		b.use();
	}

}

第3关:静态工厂2

本关任务:编写静态工厂模式的关键代码

package step7;

/**
* 各个打印机需要实现的打印机接口(产品接口)
*/
interface IPrinter {
	void print();
}

/**
* 佳能打印机(具体产品)
*/
class CanonPrinter implements IPrinter {

	@Override
	public void print() {
		System.out.println("佳能打印机开始打印...");
	}

}

/**
* 惠普打印机(具体产品)
*/
class HpPrinter implements IPrinter {

	@Override
	public void print() {
		System.out.println("惠普打印机开始打印...");
	}

}

/**
* 打印机工厂(负责根据参数创建产品实例)
*/
class PrinterFactory {
	/*************Begin************************/
    public static IPrinter createPrinter(String a){
		if(a=="canon"){
		return new CanonPrinter();
		}
		else
		return new HpPrinter();
	}  
    /**************End***********************/
}
public class SimpleFactory3 {
	public static void main(String[] args) {
		IPrinter canonPriner = PrinterFactory.createPrinter("canon");
				canonPriner.print();
				IPrinter hpPrinter = PrinterFactory.createPrinter("hp");
				hpPrinter.print();
			}

}

你可能感兴趣的:(java,java,php,python,c++,c语言)