python工厂模式 简书_Typescript 工厂模式

如果下面的代码你能轻易阅读,那么你已经熟悉工厂模式,可以接着学习其他的设计模式。

factory.jpg

工厂模式:一个类或对象中往往会包含别的对象,在创建这种成员对象时。我们经常使用new来创建,但是这会导致相关的两个类之间产生依赖性。工厂模式使用了一个方法来决定使用究竟实例哪个类。

简单工厂

工厂模式,即类似于工厂一样有一个流程化的形式。

比方说服装厂,先是任意一种服装的制作,然后是漂洗,最后是包装出场。

写成代码如下所示。

用一个类来创建经过一系列流程对象,对象的创建和流程解除依赖。从而解除依赖,更容易增加对象种类。便于以后维护和扩展。

抽象工厂

如上面的服装厂的流程,我们的服装厂要增加一种衣服的类型时,仍然需要进入工厂类中增加一个case。如果每一个case里面的流程是非常复杂的,那我们用switch case显然是不合适的。

这时候我们需要用到抽象工厂。

将生产衣服的这个switch case抽象成一个接口,因为我们只关心最终造出来的衣服,而不关心制作的流程。

换成代码就是写几个方法都去实现makeClose的接口。

然后在主方法中调用这些方法去实现生产衣服的过程。

当然,实际场景中过程的每一步都会根据衣服的种类有多种实现方法,我们可以按照生产衣服一样将他们区分开来。

这样,未来我们增加了一种衣服的类型或者洗涤方法等,只需要增加一个实现类而不用大面积的改变主方法。

工厂模式的利弊

利:

消除对象间的耦合:

使用工厂方法而不是new关键字,解除创建过程中的耦合步骤,增加可维护性和可测试性。

易于模块化

使用工厂模式,可以先创建一个抽象的父类,然后在子类中创建工厂方法,从而把成员对象的实例化推迟到更专门的子类中进行。增加可拓展性。

弊:

工厂模式在处理多流程或者是根据上下文创建实例的情况下非常好用。但是在单一流程或者是不需要根据上下文创建对象的情况下使用反而会增加阅读成本。

所以我们应该在恰当的场景中使用工厂模式。如果拿不定主意,那就不要使用,因为在以后的重构中还有机会使用工厂模式。

智慧社区的建设背景与需求 智慧社区的建设源于“互联网+”时代的呼唤,是业主刚需促成的社区变革。随着市场化进程的加速,传统社区面临着运营业务少、建设成本高、维护难度大、业务不精、增值服务少、无数据沉淀、运营模式单一等问题。而新技术如大数据、云计算的崛起,为人与人、人与物、物与物之间的无界限连接提供了可能,推动了智慧社区的发展。业主对于智能家居、可视对讲、智能安防、社区消费、在线物业、社区互动等体验式社区的需求,也成为了购房的刚需。智慧社区的建设,旨在通过一站式服务提升楼盘品质及品牌溢价,简化物业系统,增强管理效率,降低建设及维护成本,为业主提供便捷、舒适的生活服务,并转型为服务提供商。 智慧社区的核心子系统与功能 智慧社区的建设依赖于多个核心子系统,包括视频监控、可视对讲、一卡通、背景音乐、信息发布等。视频监控子系统提供了全方位的安全保障,通过密码加密传输、数据库安全、云存储等技术,实现了录像的安全存储和智能分析,如全景监控、人员异常活动检测等功能。可视对讲子系统不仅实现了基本的对讲功能,还加入了人脸识别、远程开门、信息发布等智能化功能。一卡通子系统涵盖了门禁、考勤、消费、访客、梯控、巡更等多个应用场景,实现了统一数据库和身份认证体系下的便捷管理。此外,背景音乐子系统提供了定时广播、实时广播、事件联动等功能,而信息发布子系统则支持文字、图片、即时和任务播放,以及分组管理,为社区内的信息传播提供了便利。智慧社区还注重家居的智能化,通过情景模式预设、一键自动控制、系统传感器和逻辑功能自动运行等任务,以及兼容常规电器设备,为业主提供了舒适、健康、便利的居住环境。 智慧社区的运营方案与未来展望 智慧社区的运营方案包括开放的云平台、智能终端和丰富应用,旨在打造智慧社区行业生态圈。云平台的建设实现了海量信息存储、强大的计算能力,以及统一部署、统一服务、统一用户体验和降低成本的目标。交互客服平台的打造,通过公司门户网站、小区客服网站、业主个人中心等多渠道,建立了物业与业主之间的信任关系。智慧社区还提供了多方位的多媒体广告,搭建了用户与经营者之间的桥梁,增加了物业收入。同时,智慧社区还注重公私车位运营等增值业务,通过手机APP下单、确认租赁等方式,实现了车位的有效利用和物业收入的增加。未来,智慧社区将继续深化智能化建设,拓展更多应用场景,为业主提供更加便捷、舒适、智能的生活体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值