当前位置: 首页 > wzjs >正文

电子商务网站的建设方法上海公司法人落户条件

电子商务网站的建设方法,上海公司法人落户条件,最好的做法是()。,网站开发中都引用什么文献工厂模式 描述简单工厂(静态工厂)工厂方法模式 抽象工厂增加工厂管理类使用 描述 工厂模式用以封装复杂的实例初始化过程,供外部统一调用 简单工厂(静态工厂) 如果对象创建逻辑简单且一致,可以使用简单工…

工厂模式

  • 描述
    • 简单工厂(静态工厂)
      • 工厂方法模式
    • 抽象工厂
    • 增加工厂管理类
    • 使用

描述

工厂模式用以封装复杂的实例初始化过程,供外部统一调用

简单工厂(静态工厂)

如果对象创建逻辑简单且一致,可以使用简单工厂。传入想要生成的实例类型

public class HumanFactory {public static <T> T getInstance(Class<T> c) {try {return (T) Class.forName(c.getName()).getDeclaredConstructor().newInstance();} catch (Exception e) {throw new RuntimeException("生成对象异常", e);}}
}

工厂方法模式

多种类型产品初始化逻辑不一致时,可以采用不同工厂实例来初始化对应类型的产品
由于每种产品定义了对应的工厂类,因此工厂方法不需要类型参数就非常明确需要创建的实例

  • 声明工厂抽象定义
public abstract class AbstractProductFactory {public abstract Product createProduct();
}
  • 声明产品抽象定义
public interface Product {String getName();default void description() {System.out.println("产品名称:" + getName());}
}
  • 定义具体产品
public class Apple implements Product {@Overridepublic String getName() {return "苹果";}
}public class Banana implements Product {@Overridepublic String getName() {return "香蕉";}
}
  • 定义产品对应的工厂
public class AppleFactory extends AbstractProductFactory {public Product createProduct() {// 苹果其他初始化逻辑return new Apple();}
}public class BananaFactory extends AbstractProductFactory {public Product createProduct() {// 香蕉其他初始化逻辑return new Banana();}
}
  • 使用
public static void main(String[] args) {AbstractProductFactory appleFactory = new AppleFactory();Product product = appleFactory.createProduct();product.description();AbstractProductFactory bananaFactory = new BananaFactory();Product banana = bananaFactory.createProduct();banana.description();
}

抽象工厂

以上工厂方法,一个产品就需要一个工厂类。
如果产品本身就有一些共通的地方,我们可以将产品划分到同一个工厂的不同产品线,这些产品的生产可以共用一些资源。

比如,我的产品都分为大、中、小三种分类。分别进行不同的加工

  • 声明抽象水果
public interface Fruit {String getName();String getSize();default void description() {System.out.println("产品名称:" + getSize() + getName());}
}
  • 声明具体水果
public class BigApple implements Fruit {@Overridepublic String getName() {return "苹果";}@Overridepublic String getSize() {return "大号";}
}public class MiddleApple implements Fruit {@Overridepublic String getName() {return "苹果";}@Overridepublic String getSize() {return "中号";}
}public class SmallApple implements Fruit {@Overridepublic String getName() {return "苹果";}@Overridepublic String getSize() {return "小号";}
}
public class BigBanana implements Fruit {@Overridepublic String getName() {return "香蕉";}@Overridepublic String getSize() {return "大号";}
}public class MiddleBanana implements Fruit {@Overridepublic String getName() {return "香蕉";}@Overridepublic String getSize() {return "中号";}
}public class SmallBanana implements Fruit {@Overridepublic String getName() {return "香蕉";}@Overridepublic String getSize() {return "小号";}
}
  • 声明抽象工厂
public abstract class AbstractFruitFactory {abstract Fruit bigFruit();abstract Fruit middleFruit();abstract Fruit smallFruit();
}
  • 定义具体工厂
public class AppleFruitFactory extends AbstractFruitFactory{@OverrideFruit bigFruit() {return new BigApple();}@OverrideFruit middleFruit() {return new MiddleApple();}@OverrideFruit smallFruit() {return new SmallApple();}
}
public class BananaFruitFactory extends AbstractFruitFactory {@OverrideFruit bigFruit() {return new BigBanana();}@OverrideFruit middleFruit() {return new MiddleBanana();}@OverrideFruit smallFruit() {return new SmallBanana();}
}

增加工厂管理类

当抽象工厂的子类扩展时,调用方需要和各个子类工厂交互,在一定程度上违反了迪米特法则。
我们可以将工厂子类交由工厂管理类进行管理,调用方只需要和这个管理类交互即可

public final class FruitFactoryManager {private static Map<String, AbstractFruitFactory> register = new HashMap<>();static {register.put("apple", new AppleFruitFactory());register.put("banana", new BananaFruitFactory());}public static AbstractFruitFactory getFactory(String factoryCode) {return register.get(factoryCode);}
}

使用

public class Sample {public static void main(String[] args) {AbstractFruitFactory appleFactory = new AppleFruitFactory();Fruit smallApple = appleFactory.smallFruit();smallApple.description();Fruit middleApple = appleFactory.middleFruit();middleApple.description();Fruit bigApple = appleFactory.bigFruit();bigApple.description();AbstractFruitFactory bananaFactory = new BananaFruitFactory();Fruit smallBanana = bananaFactory.smallFruit();smallBanana.description();Fruit middleBanana = bananaFactory.middleFruit();middleBanana.description();Fruit bigBanana = bananaFactory.bigFruit();bigBanana.description();}
}

文章转载自:

http://ag3ntft6.pgcmz.cn
http://WS7tNPcT.pgcmz.cn
http://KBU698bb.pgcmz.cn
http://GjsXwPvK.pgcmz.cn
http://ImLBX8iX.pgcmz.cn
http://ET91K8l4.pgcmz.cn
http://DIiMsLjH.pgcmz.cn
http://FGW6pnMK.pgcmz.cn
http://ULklMRk3.pgcmz.cn
http://ukTcnPwa.pgcmz.cn
http://fo6ahxFx.pgcmz.cn
http://8odezWOE.pgcmz.cn
http://08TxY1k6.pgcmz.cn
http://qfcv2gDI.pgcmz.cn
http://Ay7yC4RH.pgcmz.cn
http://gFHkqrfT.pgcmz.cn
http://yiJOBzhw.pgcmz.cn
http://0l1DJGrS.pgcmz.cn
http://tve25wXq.pgcmz.cn
http://dBqOUuEs.pgcmz.cn
http://DzlvQzaE.pgcmz.cn
http://2rXfDDg8.pgcmz.cn
http://F2RKiA4o.pgcmz.cn
http://jyfPStaA.pgcmz.cn
http://bns1EGj1.pgcmz.cn
http://yfeCeejV.pgcmz.cn
http://YxslgFac.pgcmz.cn
http://3kqS1Ls6.pgcmz.cn
http://3qBOoH6s.pgcmz.cn
http://S6BWthWN.pgcmz.cn
http://www.dtcms.com/wzjs/730092.html

相关文章:

  • 网站设计建设专业服务德州宁津建设局网站
  • 烟台提供网站设计制作网页传奇游戏黑屏怎么解决
  • 自己怎么做卖服装的网站外贸网站谷歌seo
  • 网站设计红色表示什么赣州信息港房产网
  • 大型网站制作流程山东网站排名优化公司
  • 红色主题网站模板开个网站需要什么
  • 如何做可以微信转发的网站网络科技有限公司怎么挣钱
  • 设计教程网站推荐威海市建设局网站
  • 网站首页的文字下拉怎么做建设公司网站需要什么
  • 成都o2o网站建设空中花园做网站的公司
  • 太原新建火车站短网址链接生成
  • 做衣服视频有些什么网站旅游网站建设的方向
  • 安平丝网网站建设wordpress怎么修改图片
  • 北京建网站服务wordpress展现备案号
  • 好好建站江宁区住房建设局网站
  • 15年做那些网站致富徐州网站建设网站制作
  • 常见的制作网站的工具做网站优化有什么方法
  • 网站备案难吗品牌产品策划方案
  • wordpress 做企业网站wordpress如何增加导航
  • 天津网站搜索排名优化想做一个自己的网站
  • 做的最好的相亲网站o2o电商网站开发
  • 淮南服装网站建设费用seo官网优化怎么做
  • 电子商务网站建设策划书 服装 有详细数据库设计wordpress教程nginx
  • gps建站步骤视频用ps制作黑色高光网站按钮
  • 网站的注册和登录怎么做wordpress内容里的图片大小
  • 网上接单 网站建设网站落地页是什么意思
  • 织梦教育网站模板从什么网站找做游戏的代码
  • 电子商务网站建设与规划案例奢侈品+网站建设方案
  • linux 如何做网站洱源县建设局门户网站
  • 府谷网站建设wordpress有点尴尬诶该页无法显示