做性视频网站有哪些,怎样使自己做的网站上线,甘肃省城乡住房建设厅网站,网站页面做专题的步骤1.模式定义 定义一个用于创建对象的接口#xff0c;让子类决定实例化哪一个类。Factory Method 使得一个类的实例化延迟到子类 2.使用场景 1.当你不知道改使用对象的确切类型的时候 2.当你希望为库或框架提供扩展其内部组件的方法时 主要优点#xff1a; 1.将具体产品和创建…1.模式定义 定义一个用于创建对象的接口让子类决定实例化哪一个类。Factory Method 使得一个类的实例化延迟到子类 2.使用场景 1.当你不知道改使用对象的确切类型的时候 2.当你希望为库或框架提供扩展其内部组件的方法时 主要优点 1.将具体产品和创建者解耦 2.符合单一职责原则 3.符合开闭原则 3.具体实现 3.1 代码示例 简单工厂 // 简单工厂
class SimpleFactory {public static Product createProduct(String type) {if (A.equals(type)) {return new ProductA();} else if (B.equals(type)) {return new ProductB();} else {return null;}}
}工厂方法 // 工厂方法
abstract class ProductFactory {/*** 创建产品** return*/abstract Product createProduct();public Product getObject() {Product product createProduct();return product;}
}class NonCreateProductA extends ProductFactory {OverrideProduct createProduct() {return new ProductA();}
}class NonCreateProductB extends ProductFactory {OverrideProduct createProduct() {return new ProductB();}
} 示例代码 // 实例代码
interface Product {String getName();
}class ProductA implements Product {Overridepublic String getName() {return Names product A;}
}class ProductB implements Product {Overridepublic String getName() {return Names product B;}
} 测试代码 public class FactoryMethodTest {public static void main(String[] args) {// 简单工厂测试代码Product simpleA SimpleFactory.createProduct(A);System.out.println(simpleA.getName());Product simpleB SimpleFactory.createProduct(B);System.out.println(simpleB.getName());// 工厂方法测试代码Product pa new NonCreateProductA().getObject();System.out.println(pa.getName());Product pb new NonCreateProductB().getObject();System.out.println(pb.getName());}} 3.2 源码中的应用 // java api
// 静态工厂方法
Calendar.getInstance()
java.text.NumberFormat.getInstance()
java.util.ResourceBundle.getBundle()// 工厂方法
java.net.URLStreamHandlerFactory
javax.xml.bind.JAXBContext.createMarshaller