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

主机托管网站乐清市规划局

主机托管网站,乐清市规划局,vs做网站教程,如何制作代码如有错误或有补充#xff0c;以及任何的改进意见#xff0c;请在评论区留下您的高见 工厂模式 工厂模式是一种创建型设计模式。在工厂模式中#xff0c;类的实例化过程通常是通过一个专门的工厂类来完成的#xff0c;而不是直接在客户端代码中进行的。这样可以提供更好的…如有错误或有补充以及任何的改进意见请在评论区留下您的高见 工厂模式 工厂模式是一种创建型设计模式。在工厂模式中类的实例化过程通常是通过一个专门的工厂类来完成的而不是直接在客户端代码中进行的。这样可以提供更好的封装使得客户端代码与具体产品的实现解耦增加代码的灵活性和可维护性。 优点 封装性客户端代码不再需要知道所创建对象的详细信息只需要与工厂接口进行交互即可。 灵活性工厂模式使得系统更加灵活可以在不修改客户端代码的情况下更换或添加新产品。 可扩展性通过使用工厂模式当需要添加新产品时只需要扩展工厂类而不需要修改客户端代码。 基本结构 抽象产品Abstract Product这是要创建的对象的抽象接口。 具体产品Concrete Product实现了抽象产品接口的具体类。 具体工厂Concrete Factory负责创建具体产品对象。 应用场景 当一个类不知道它所必须创建对象的类时例如你可能需要根据输入参数的不同来创建不同的对象。 当一个类希望其子类决定它所创建的对象时例如你希望提供一种方法让子类来自定义对象的创建过程。 当一个类希望通过子类来指定它所创建的对象时在这种情况下你可以将“创建对象”的职责委托给子类而不是直接在父类中完成。 示例 假设我们有一个场景其中需要创建不同的小动物包括小狗小猫。此时就可以使用工厂模式。 Animal.java public interface Animal {void eat(); }AnimalFactroy.java public class AnimalFactory {public Animal getAnimal(String name) {if (name null){return null;}// 根据不同的输入返回不同对象if (dog.equals(name)) {return new Dog();} else if (cat.equals(name)) {return new Cat();}return null;} }Cat.java public class Cat implements Animal{Overridepublic void eat() {System.out.println(吃鱼); } }Dog.java public class Dog implements Animal{Overridepublic void eat() {System.out.println(吃骨头);} }Demo.java public class Demo {public static void main(String[] args) {AnimalFactory animalFactory new AnimalFactory();Cat cat (Cat) animalFactory.getAnimal(cat);cat.eat();Animal dog animalFactory.getAnimal(dog);dog.eat();} }运行Demo.java输出如下 吃鱼 吃骨头 抽象工厂模式 优点 封装性客户端代码不再需要知道所创建对象的详细信息只需要与抽象工厂接口进行交互即可。 灵活性通过使用抽象工厂模式可以在不修改客户端代码的情况下更换或添加新产品族。 多态性客户端代码可以使用同一个接口来创建不同类型的产品对象增强了代码的复用性。 基本结构 抽象产品Abstract Product这是要创建的对象的抽象接口。 具体产品Concrete Product实现了抽象产品接口的具体类。 抽象工厂Abstract Factory创建产品的工厂的抽象接口。 具体工厂Concrete Factory实现了抽象工厂的类负责创建具体产品对象。 应用场景 当一个系统中有多个产品族并且希望客户端代码使用同一个接口来创建不同产品族的对象时使用抽象工厂模式可以将不同产品族的创建逻辑封装在各自的具体工厂中使得客户端代码与具体产品实现解耦。 当希望在不修改客户端代码的情况下更换或添加新产品族时通过扩展具体工厂类来添加新产品族而不需要修改客户端代码。 当希望对一个系统中的多个产品族进行独立配置时使用抽象工厂模式可以将配置逻辑集中到具体工厂中使得客户端代码更加简洁。 示例 我们有不同的类Object需要生成于是我们把工厂也抽象出来为每一个类设置不同的工厂再让这些工厂去继承同一个接口。 Total.java public class Total {public static void main(String[] args) {com.hacoj.abstract_factory_pattern.PatternFactory patternFactory (com.hacoj.abstract_factory_pattern.PatternFactory) com.hacoj.abstract_factory_pattern.FactoryProducer.getFactory(Pattern);com.hacoj.abstract_factory_pattern.ColorFactory colorFactory (com.hacoj.abstract_factory_pattern.ColorFactory) com.hacoj.abstract_factory_pattern.FactoryProducer.getFactory(Color);com.hacoj.abstract_factory_pattern.Pattern circle patternFactory.getPattern(circle);com.hacoj.abstract_factory_pattern.Pattern rectangle patternFactory.getPattern(rectangle);com.hacoj.abstract_factory_pattern.Color red colorFactory.getColor(red);com.hacoj.abstract_factory_pattern.Color blue colorFactory.getColor(blue);circle.show();rectangle.show();red.show();blue.show();} }class FactoryProducer {public static com.hacoj.abstract_factory_pattern.AbstractFactory getFactory(String name) {if (namenull) {return null;}if (Pattern.equals(name)) {return new PatternFactory();} else if (Color.equals(name)) {return new com.hacoj.abstract_factory_pattern.ColorFactory();} else {System.out.println(没有对应的厂子);return null;}} }interface AbstractFactory {}interface Pattern {void show(); }interface Color {void show(); }class Circle implements Pattern {Overridepublic void show() {System.out.println(这是圆形);} }class Blue implements Color {Overridepublic void show() {System.out.println(这是蓝色);} }class Rectangle implements com.hacoj.abstract_factory_pattern.Pattern {Overridepublic void show() {System.out.println(这是方形);} }class Red implements com.hacoj.abstract_factory_pattern.Color {Overridepublic void show() {System.out.println(这是红色);} }class ColorFactory implements com.hacoj.abstract_factory_pattern.AbstractFactory {public com.hacoj.abstract_factory_pattern.Color getColor(String name) {if (namenull){return null;}if (red.equals(name)){return new Red();} else if (blue.equals(name)) {return new com.hacoj.abstract_factory_pattern.Blue();} else {System.out.println(Invalid color);return null;}} }class PatternFactory implements com.hacoj.abstract_factory_pattern.AbstractFactory {public com.hacoj.abstract_factory_pattern.Pattern getPattern(String name) {if (name null) {return null;}if (rectangle.equals(name)) {return new Rectangle();} else if (circle.equals(name)) {return new com.hacoj.abstract_factory_pattern.Circle();} else {System.out.println(Invalid pattern);return null;}} }区别 普通工厂模式仅用于创建单个对象而抽象工厂模式可以创建一类对象。抽象工厂模式更灵活可维护性和可扩展性更强适用于多个产品等级结构。
http://www.hkea.cn/news/14361966/

相关文章:

  • 商务类网站英讯网站建设
  • 一起做网站17杭州女装wordpress 图片失效
  • 深圳找人做网站网站设计公司有名乐云seo
  • joomla! 1.5 网站建设基础教程湖北皇奥建设工程有限公司网站
  • 备案资料 网站建设方案书网站项目设计流程案例
  • 团购网站平台建设家居企业网站建设平台
  • 藁城专业网站建设网站建设的流程及步骤
  • 北京新站优化织梦cms下载
  • 有哪个网站专业做漫画素材的哔哩哔哩网页版怎么退出登录
  • 2网站建设营销推广网
  • 网站分站系net网站开发视频
  • 爱站网seo综合查询重庆集团公司网站建设
  • 主机屋网站在那注册哈尔滨全员核酸检测
  • 门户网站英文版建设网站建设策划案模板
  • wamp 设置多个网站做西餐的网站
  • 哪个网站建站好软件开发工程师的招聘简章
  • 昆明优化网站公司wordpress默认域名
  • 中企动力 网站价格机械加工网厂
  • ftp上传网站之后品牌vi设计理念
  • 公司网站排名怎么做注册网站域名的入口是
  • 深圳网站建设制作视频软件网站开发还有哪些
  • 做网站效果怎么样百度指数查询官网入口
  • 手机网站内容管理系统大学营销型网站建设实训课程
  • 微小店网站建设费用什么 a wordpress
  • 网站新年特效南昌专业的学校网站建设公司
  • 争对银行排队做一网站虚拟主机和服务器有什么区别
  • 江苏省 建设 注册中心网站wordpress 动态主题
  • 网站seo入门西安网站制作工作室
  • 北京响应式的网站wordpress主页模板
  • 妇幼网站建设ppt个人网页制作模板田田田田田田田田