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

深圳坂田网站建设设计在线官网作品欣赏

深圳坂田网站建设,设计在线官网作品欣赏,四川网站建设哪家好,营销策略包括哪些方面工厂模式分为三种 :简单工厂模式 、工厂方法模式 、抽象工厂模式 。 目录 简单工厂模式 UML图 实现 使用场景#xff1a; 优点 #xff1a; 缺点#xff1a; 工厂方法模式 UML图 实现 使用场景#xff1a; 优点#xff1a; 缺点#xff1a; 抽象工厂模式 UM…工厂模式分为三种 :简单工厂模式 、工厂方法模式 、抽象工厂模式 。 目录 简单工厂模式 UML图 实现 使用场景 优点 缺点 工厂方法模式 UML图 实现 使用场景 优点 缺点 抽象工厂模式 UML图 实现 场景 优点 缺点 总结 简单工厂模式 简单工厂模式又叫静态方法模式因为工厂类定义了一个静态方法简单工厂模式可以理解为负责生产对象的一个类称为“工厂类”。 简单工厂模式属于创建型模式 。 UML图 简单工厂模式角色说明 Product抽象产品类要创建的复杂对象定义对象的公共接口。ConcreteProduct具体产品类实现Product接口。Factory工厂类返回ConcreteProduct实例。 总结一个抽像产品类可以派生出多个具体产品类 。一个具体工厂类通过往此工厂的static 方法中传入不同参数产出不同的具体产品类的实例 。 实现 (1) 创建抽象产品类定义公共接口 public interface Product {void show(); } (2) 创建具体的产品类实现Proudct类 public class ProductA implements Product{Overridepublic void show() {System.out.println(我是产品A);} } public class ProductB implements Product{Overridepublic void show() {System.out.println(我是产品B);} } (3) 创建工厂类生产出具体的产品 public class ProductFactory {public static Product createProduct(String productName){Product productnull;switch (productName){case A:productnew ProductA();break;case B:productnew ProductB();break;}return product;} } 4测试 public static void main(String[] args){ProductFactory.createProduct(A).show();} 使用场景 工厂类负责常见的产品对象比较少且工厂类功能稳定不需要扩展客户端只需传入工厂类的参数就能获得对应的产品对象而无需关心创建对象的具体逻辑。生成复杂对象时确定只有一个工厂类的时候 优点 代码解耦创建实例的工作与使用实例的工作分开使用者不必关心类对象如何创建 缺点 违背开放封闭原则若需添加新产品必须修改工厂类逻辑会造成工厂逻辑过于复杂。 简单工厂模式使用了静态工厂方法因此静态方法不能被继承和重写。 工厂类包含了所有实例产品的创建逻辑若工厂类出错则会造成整个系统都会受到影响。 工厂方法模式 定义 定义一个用于创建对象的接口让子类决定实例化哪个类 工厂方法使一个类的实例化延迟到其子类 概括Concrete Product 具有共同的父类Product Concrete Factory也具有共同的父类Factory。每个具体的子类Concrete Factory 产出一个对应的Concrete Product。 UML图 总结 一个抽象产品类可以派生出多个具体产品类 。一个抽象工厂类 可以派生出多个具体工厂类 每个具体工厂类只能创建一个具体产品类的实例。 实现 (1)、创建抽象产品 public interface Product {void show(); } (2)、创建具体的产品实现Product类 public class ProductA implements Product{Overridepublic void show() {System.out.println(我是产品A);} } public class ProductB implements Product{Overridepublic void show() {System.out.println(我是产品B);} } (3)、创建抽象工厂 public interface Factory {T extends Product T createProduct(); } (4) 、创建具体的工厂 public class FactoryImpl implements Factory{Overridepublic T extends Product T createProduct(ClassT cls) {Product productnull;try{product (Product) Class.forName(cls.getName()).newInstance();}catch (Exception e){}return (T)product;} }(5)测试  public static void main(String[] args){FactoryImpl factorynew FactoryImpl();Product productAfactory.createProduct(ProductA.class);productA.show();} 使用场景 工厂类负责常见的产品对象比较多且工厂类功能不稳定需要扩展客户端只需传入产品类的参数就能获得对应的产品对象而无需关心创建对象的具体逻辑。生成复杂对象时确定只有多个工厂类的时候优点 1、更符合开放封闭原则 新增一种产品时只需要增加相应的具体产品类和相应的工厂子类即可而简单工厂模式需要修改工厂类的判断逻辑 2、符合单一职责原则 每个具体工厂类只负责创建对应的产品而简单工厂中的工厂类存在复杂的switch逻辑判断 3、不使用静态工厂方法可以形成基于继承的等级结构而简单工厂模式的工厂类使用静态工厂方法 总结工厂模式可以说是简单工厂模式的进一步抽象和拓展在保留了简单工厂的封装优点的同时让扩展变得简单让继承变得可行增加了多态性的体现。 缺点 1、添加新产品时除了增加新产品类外还要提供与之对应的具体工厂类系统类的个数将成对增加在一定程度上增加了系统的复杂度同时有更多的类需要编译和运行会给系统带来一些额外的开销 2、由于考虑到系统的可扩展性需要引入抽象层在客户端代码中均使用抽象层进行定义增加了系统的抽象性和理解难度且在实现时可能需要用到DOM、反射等技术增加了系统的实现难度。 3、虽然保证了工厂方法内的对修改关闭但对于使用工厂方法的类如果要更换另外一种产品仍然需要修改实例化的具体工厂类 4、一个具体工厂只能创建一种具体产品 抽象工厂模式 定义为创建一组相关或者相互依赖的对象提供一个接口而无需指定它们具体的类。 介绍 抽象工厂模式属于创建型模式。 工厂方法模式每个工厂只能创建一种类型的产品而抽象工厂模式则能够创建多种类型的产品。 例如硬盘工厂只生产硬盘这种产品而电脑工厂则组合不同的硬盘、内存、CPU等生产出电脑来。 UML图 角色说明 AbstractProduct抽象产品类定义产品的公共接口。 ConcreteProduct具体产品类定义产品的具体对象实现抽象产品类中的接口。 AbstractFactory抽象工厂类定义工厂中用来创建不同产品的方法。 ConcreteFactory具体工厂类实现抽象工厂中定义的创建产品的方。 实现 (1)抽象产品类 //抽象产品类-- CPUpublic abstract class CPU {public abstract void showCPU();}//抽象产品类-- 内存public abstract class Memory {public abstract void showMemory();}//抽象产品类-- 硬盘public abstract class HD {public abstract void showHD();} 2创建具体产品类 //具体产品类-- Intet CPUpublic class IntelCPU extends CPU {Overridepublic void showCPU() {System.out.println(Intet CPU);}}//具体产品类-- AMD CPUpublic class AmdCPU extends CPU {Overridepublic void showCPU() {System.out.println(AMD CPU);}}//具体产品类-- 三星 内存public class SamsungMemory extends Memory {Overridepublic void showMemory() {System.out.println(三星 内存);}}//具体产品类-- 金士顿 内存public class KingstonMemory extends Memory {Overridepublic void showMemory() {System.out.println(金士顿 内存);}}//具体产品类-- 希捷 硬盘public class SeagateHD extends HD {Overridepublic void showHD() {System.out.println(希捷 硬盘);}}//具体产品类-- 西部数据 硬盘public class WdHD extends HD {Overridepublic void showHD() {System.out.println(西部数据 硬盘);}} 3  创建抽象工厂类 //抽象工厂类电脑工厂类public abstract class ComputerFactory {public abstract CPU createCPU();public abstract Memory createMemory();public abstract HD createHD();} 4创建具体工厂类 //具体工厂类--联想电脑public class LenovoComputerFactory extends ComputerFactory {Overridepublic CPU createCPU() {return new IntelCPU();}Overridepublic Memory createMemory() {return new SamsungMemory();}Overridepublic HD createHD() {return new SeagateHD();}}//具体工厂类--华硕电脑public class AsusComputerFactory extends ComputerFactory {Overridepublic CPU createCPU() {return new AmdCPU();}Overridepublic Memory createMemory() {return new KingstonMemory();}Overridepublic HD createHD() {return new WdHD();}}//具体工厂类--惠普电脑public class HpComputerFactory extends ComputerFactory {Overridepublic CPU createCPU() {return new IntelCPU();}Overridepublic Memory createMemory() {return new KingstonMemory();}Overridepublic HD createHD() {return new WdHD();}}public static void main(String[] args){System.out.println(--------------------生产联想电脑-----------------------);ComputerFactory lenovoComputerFactory new LenovoComputerFactory();lenovoComputerFactory.createCPU().showCPU();lenovoComputerFactory.createMemory().showMemory();lenovoComputerFactory.createHD().showHD();System.out.println(--------------------生产华硕电脑-----------------------);ComputerFactory asusComputerFactory new AsusComputerFactory();asusComputerFactory.createCPU().showCPU();asusComputerFactory.createMemory().showMemory();asusComputerFactory.createHD().showHD();System.out.println(--------------------生产惠普电脑-----------------------);ComputerFactory hpComputerFactory new HpComputerFactory();hpComputerFactory.createCPU().showCPU();hpComputerFactory.createMemory().showMemory();hpComputerFactory.createHD().showHD(); } 场景 生产多个产品组合对象时。 优点 代码解耦 创建实例工作与使用实例的工作分开 使用者不用担心类对象如何创建。 缺点 如果增加新的产品,则修改抽象工厂和所有的具体工厂,违反了开放封闭原则 工厂方法模式与抽象工厂模式比较 在工厂方法模式中具体工厂负责生产具体的产品每一个具体工厂对应一种具体产品工厂方法具有唯一性。 抽象工厂模式则可以提供多个产品对象而不是单一的产品对象。 总结 单一产品对象产品内不包含其他产品多个产品对象一个产品要其他许多配件产品组成的 1.单一产品对象并且不涉及到扩展的话用简单工厂模式 2.单一产品对象并且涉及到扩展的话用工厂方法模式 3.多个产品对象用抽象工厂模式 参考文章 Android工厂模式 - 爱码网
http://www.w-s-a.com/news/668587/

相关文章:

  • 网站安全解决方案宁波seo网络推广优化价格
  • 做网站带来好处wordpress可以做oa系统吗
  • 建筑设计人才招聘网站h5营销型网站suteng
  • 做app和网站怎样如何做html网站
  • php开发手机端网站开发更换网站标题
  • 提供网站建设报价延津县建设局网站
  • 江苏网站建设流程土巴兔全包装修怎么样
  • 环保网站建设方案带漂浮广告的网站
  • 淘宝客合伙人网站建设建站前端模板
  • 网站单页模板怎么安装中世纪变装小说wordpress
  • 手机免费建设网站制作宝安第一网站
  • 如何做x响应式网站asp网站出现乱码
  • 网站备案的幕布是什么来的游戏推广代理
  • 固始城乡建设局的网站怎么打不开了上海建设网站
  • 关于加强网站信息建设的通知3d网站开发成本
  • 网站建设实训过程报告成品网站1688入口的功能介绍
  • 网站定制开发需要什么资质国外设计灵感网站
  • 搜搜网站收录广告设计与制作模板图片
  • 江苏省建设监理协会网站汕头网站建设方案优化
  • 中国风网站配色方案正规少儿编程排名
  • 兼职做网站的软件wordpress赞的代码
  • 销售网站的技巧四博互联做的网站
  • 网站建设 图片问题小程序免费制作平台凡科网页版
  • 猪八戒网做网站怎么样网站建设 客户同程
  • 西安网站建设那家强网站建设方案 报价
  • 销售网站建设考核指标网站建设价格组成
  • 网站302跳转网站建设完成后 下一步做什么
  • 赣州制作网站企业硬件开发用什么语言
  • 新网站如何被网站收录百度排名优化软件
  • html网站简易模板国内买机票的网站建设