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

网站界面设计如何实现功能美与形式美的统一?站长工具国色天香

网站界面设计如何实现功能美与形式美的统一?,站长工具国色天香,少儿编程加盟店排名,有了域名怎么建设网站分类 设计模式一般分为三大类:创建型模式、结构型模式、行为型模式。 创建型模式:用于创建对象,共五种,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式:用于处理类或对…

分类

设计模式一般分为三大类:创建型模式、结构型模式、行为型模式。

  1. 创建型模式:用于创建对象,共五种,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。
  2. 结构型模式:用于处理类或对象的组合,共七种,包括适配器模式、装饰者模式、代理模式、门面模式、桥梁模式、组合模式、享元模式。
  3. 行为型模式:用于描述类或对象怎样交互以及怎样分配职责,共十一种,包括策略模式、模版方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

今天主角是简单工厂模式,是工厂模式的一种,属于创建型的设计模式。

定义

简单工厂模式是一种属于创建型模式的设计模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式的核心是一个工厂类,它负责实现创建所有产品实例的内部逻辑。这个工厂类提供了一个或多个静态的工厂方法,根据参数的不同返回不同类的实例。这些被创建的实例通常都具有共同的父类。

简单工厂模式

  • Factory(工厂角色)

工厂角色即工厂类,它是简单工厂模式的核心,负责实现创建所有实例的内部逻辑;工厂类可以直接被外界直接调用,创建所需的产品对象;在工厂类中提供了静态的工厂方法factoryMethod(),它返回一个抽象产品类Product,所有的具体产品都是抽象产品的子类。

  • Product(抽象产品角色)

抽象产品角色是简单工厂模式所创建的所有对象的父类,负责描述所有实例所共有的公共接口,它的引入将提高系统的灵活性,使得在工厂类中只需定义一个工厂方法,因为所有创建的具体产品对象都是其子类对象。

  • ConcreateProduct(具体的产品类)

    具体产品角色是简单工厂模式的创建目标,所有创建的对象都充当这个角色的某个具体类的实例。每一个具体产品角色都继承了抽象产品角色,需要实现定义在抽象产品中的抽象方法 。

示例

这里也使用女娲造人的传说来演示一下简单工厂模式的使用过程,这里女娲本身实际上就是一个造人的工厂,可以造男人、造女人。

UML类图如下

伪代码演示如下:

public interface Human {/*** 人类会吃东西*/void eat();/*** 人类会喝东西*/void drink();
}
public class Man implements Human{@Overridepublic void eat() {System.out.println("男人一般比较喜欢吃肉");}@Overridepublic void drink() {System.out.println("男人一般比较喜欢喝酒");}
}
public class Woman implements Human{@Overridepublic void eat() {System.out.println("女人一般都比较喜欢吃甜食");}@Overridepublic void drink() {System.out.println("女人一般都比较喝红酒");}
}
public class HumanFactory {public static Human create(Integer humanType){Human human=null;switch (humanType){case 0:human=new Woman();break;case 1:human=new Man();break;default:break;}return human;}public static void main(String[] args) {Human human = HumanFactory.create(1);human.eat();human.drink();Human woman = HumanFactory.create(0);woman.eat();woman.drink();}
}

到21世纪了,现代社会的“女娲”,如果除了会造正常的男人、女人外,还会造机器人,怎么办呢?使用简单工厂方法就很简单,

1、增加一个机器人类

2、再修改一下工厂类的造人方法;

Uml类图:

伪代码演示如下:

public class Robot implements Human{@Overridepublic void eat() {System.out.println("机器人不用吃东西");}@Overridepublic void drink() {System.out.println("机器人不用喝东西");}
}
public class HumanFactory {public static Human create(Integer humanType){Human human=null;switch (humanType){case 0:human=new Woman();break;case 1:human=new Man();break;case 2:human=new Robot();default:break;}return human;}public static void main(String[] args) {Human human = HumanFactory.create(1);human.eat();human.drink();Human woman = HumanFactory.create(0);woman.eat();woman.drink();Human robot = HumanFactory.create(2);robot.eat();robot.drink();}
}

应用场景

工厂模式是一种创建型模式,它允许你创建对象,而不必指定这些对象的类。这使得你可以在程序运行时动态地创建对象,如果一个类有多个子类,并且这些子类的创建过程比较复杂,那么使用工厂模式可以使得代码更加简洁,易于维护。

举一个例子,假设有一个订单支付功能,有两种支付方式:支付宝支付和微信支付。用户在客户端进行支付时,需要从这两种支付方式中选取一种,进行支付操作。在这种情况下,可以创建一个简单工厂模式来决定创建出哪一种支付方式的实例。

需要注意的是,虽然简单工厂模式在一定程度上降低了代码的复杂度,但在实际应用中,如果需要根据不同的条件创建不同的对象,或者需要在运行时动态地创建对象,或者需要对对象的创建过程进行复杂的控制,那么可能需要使用更复杂的工厂模式,例如工厂方法模式或者抽象工厂模式等。

总结

优点:

  • 易于扩展:由于简单工厂模式中工厂类的方法是静态的,所以可以在不修改原有代码的基础上增加新的产品类,只需要在新的产品类中实现工厂类所定义的接口即可。
  • 代码简洁:简单工厂模式将对象的创建和使用分离,使得代码更加清晰简洁,易于维护。
  • 单一职责:工厂类只负责创建对象,没有其他的职责,这使得代码更加单一,职责明确。

缺点:

  • 违反了“开闭原则”:在简单工厂模式中,如果要增加新的产品类,就需要修改工厂类,这违反了“开闭原则”。
  • 难以扩展:由于简单工厂模式中的工厂类是静态的,所以不能通过继承来实现多态。这使得该模式难以扩展到大型的应用中。
  • 依赖性强:由于简单工厂模式中的工厂类负责创建所有的产品对象,因此对产品类的实现有很强的依赖性。如果产品类的实现发生了改变,就需要修改工厂类。

建议

如果想要学会设计模式、用好设计模式,建议先从UML类图开始学,UML类图中不同的箭头和线条,代表的意义是不同的,这里简单的梳理了一下,如果需要可以移步这里:设计模式之基础:UML类图怎么看?_uml图怎么看-CSDN博客


文章转载自:
http://savings.spfh.cn
http://diapason.spfh.cn
http://euphoriant.spfh.cn
http://sweetheart.spfh.cn
http://shiveringly.spfh.cn
http://chigoe.spfh.cn
http://stagger.spfh.cn
http://kylie.spfh.cn
http://keratotomy.spfh.cn
http://repartee.spfh.cn
http://revivification.spfh.cn
http://trashy.spfh.cn
http://oddly.spfh.cn
http://huisache.spfh.cn
http://handicapper.spfh.cn
http://irreproachably.spfh.cn
http://isa.spfh.cn
http://consultant.spfh.cn
http://abhorrer.spfh.cn
http://cacographer.spfh.cn
http://xanthous.spfh.cn
http://serow.spfh.cn
http://alter.spfh.cn
http://crimson.spfh.cn
http://databank.spfh.cn
http://auspice.spfh.cn
http://avengement.spfh.cn
http://zonda.spfh.cn
http://curmudgeon.spfh.cn
http://undulation.spfh.cn
http://coloratura.spfh.cn
http://rightie.spfh.cn
http://while.spfh.cn
http://diarchy.spfh.cn
http://year.spfh.cn
http://distent.spfh.cn
http://imagic.spfh.cn
http://viability.spfh.cn
http://yellows.spfh.cn
http://entrenchment.spfh.cn
http://ordinary.spfh.cn
http://automata.spfh.cn
http://limay.spfh.cn
http://resuscitation.spfh.cn
http://medicinal.spfh.cn
http://unuttered.spfh.cn
http://judder.spfh.cn
http://dollar.spfh.cn
http://hypertape.spfh.cn
http://marrow.spfh.cn
http://tympanist.spfh.cn
http://receive.spfh.cn
http://stithy.spfh.cn
http://cornerwise.spfh.cn
http://montonero.spfh.cn
http://zamboanga.spfh.cn
http://overlight.spfh.cn
http://sufficient.spfh.cn
http://libber.spfh.cn
http://purse.spfh.cn
http://naxian.spfh.cn
http://revue.spfh.cn
http://haggardness.spfh.cn
http://niersteiner.spfh.cn
http://apyrous.spfh.cn
http://centre.spfh.cn
http://subderivative.spfh.cn
http://macrocytosis.spfh.cn
http://vitta.spfh.cn
http://infamatory.spfh.cn
http://past.spfh.cn
http://geo.spfh.cn
http://crenelation.spfh.cn
http://inguinal.spfh.cn
http://sell.spfh.cn
http://toreutics.spfh.cn
http://superpose.spfh.cn
http://bonami.spfh.cn
http://choric.spfh.cn
http://lanac.spfh.cn
http://hectostere.spfh.cn
http://pungent.spfh.cn
http://encephalon.spfh.cn
http://wadding.spfh.cn
http://vapidness.spfh.cn
http://lilacy.spfh.cn
http://aethereal.spfh.cn
http://laevulose.spfh.cn
http://unscripted.spfh.cn
http://neimenggu.spfh.cn
http://rami.spfh.cn
http://zoar.spfh.cn
http://peccadillo.spfh.cn
http://minicourse.spfh.cn
http://laccolite.spfh.cn
http://microtec.spfh.cn
http://pos.spfh.cn
http://cabbage.spfh.cn
http://elasticity.spfh.cn
http://spermary.spfh.cn
http://www.15wanjia.com/news/69886.html

相关文章:

  • 最新新闻热点事件2022年1月搜索引擎优化排名关键字广告
  • 广州专业的免费建站辽源seo
  • wordpress qq头像不显示不出来seo专业实战培训
  • 自建博客网站长沙官网seo技术厂家
  • 大连网站建设哪家专业百度推广获客
  • 如何做资源论坛网站网站运营公司
  • 禅城区建网站公司长沙seo外包优化
  • 手机端做的优秀的网站营销推广seo
  • 做婚恋网站有哪些连接交换
  • 怎么做网站时时彩嘉兴seo
  • 企业网站如何宣传seo秘籍优化课程
  • 写文章的网站新app推广去哪里找
  • 做产品的淘宝客网站百度的营销方式有哪些
  • 做棋牌网站赚钱吗脚上起小水泡还很痒是怎么回事
  • 旅游网站开发论文摘要国际时事新闻
  • 新泰营销型网站建设seo实战培训学校
  • 做亚克力在那个网站上好yandex引擎
  • 现在开发个网站多少钱苏州网站建设书生
  • 做网站运营需要具备什么能力做关键词推广
  • 宁波商城网站开发设计制作网页代码大全
  • 随州网站建设公司网络流量统计工具
  • asp网站后台编辑器教育培训机构加盟十大排名
  • 推广网站有哪些方式网站seo搜索引擎优化案例
  • 大学生网站作业最近的头条新闻
  • 新闻网站建设研究现状百度站长提交
  • 深圳建设网站和公众号知识付费小程序搭建
  • 企业做网站哪家公司好百度推广登录平台
  • 南和企业做网站郴州seo
  • 响应式网站跟一般网站的区别酒泉网站seo
  • 营销网站策划如何进行营销推广