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

模版营销型网站怎么做东莞互联网推广

模版营销型网站怎么做,东莞互联网推广,怎么做公司,企业网页设计作品分析iOS 工厂模式 文章目录 iOS 工厂模式前言工厂模式简单工厂案例场景分析苹果类优点缺点 小结 工厂模式客户端调用**优点****缺点** 抽象工厂模式三个模式对比 前言 笔者之前学习了有关于设计模式的六大原则,之前简单了解过这个工厂模式,今天主要是重新学习一下这个模式,正式系统…iOS 工厂模式 文章目录 iOS 工厂模式前言工厂模式简单工厂案例场景分析苹果类优点缺点 小结 工厂模式客户端调用**优点****缺点** 抽象工厂模式三个模式对比 前言 笔者之前学习了有关于设计模式的六大原则,之前简单了解过这个工厂模式,今天主要是重新学习一下这个模式,正式系统性的学习一下这个模式 工厂模式 工厂模式就是指我们在创建对象的时候不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象,在OC中最经典的例子是下面这个: UIButton* button [UIButton buttonWithType:UIButtonTypeSystem];这里我们并不处理创建逻辑,而是通过我们需要什么就会创建出对应需求的一个button 工厂模式主要分成三类: 简单工厂: 简单工厂不是一个模式,而是一种编程习惯,提供一个创建对象实例的功能,而无需关系他的具体实现.被创建的类型可以是接口,抽象类,具体类工厂模式:要依赖抽象,不要依赖具体抽象工厂模式:提供一个创建一系列相关或者互相依赖的接口,而无需依赖具体类 简单工厂 简单工厂模式(Simple Factory Pattern)专门定义一个类工厂类来负责创建其他类的实例。可以根据创建方法的参数来返回不同类的实例被创建的实例通常都具有共同的父类。 就相当于一个工厂添加新的产品. 总结来说,就是将各式各样if-else的判断由业务层,放到了工厂类里面 简单工厂模式的结果比较简单: 工厂:工厂负责创建所有产品实例的逻辑具体产品:工厂锁创建的所有产品对象类,它以自己的方式来实现其共同父类声明的接口 案例 一个商店中售卖不同品牌的手机:华为手机,小米手机,苹果手机 场景分析 工厂:Phone, 手机工厂类具体产品:华为手机,小米手机,苹果手机 - (Factory *)sellPhone:(NSString *)type {if ([type isEqualToString:ApplePhone]) {ApplePhone* phone [[ApplePhone alloc] init];return phone;} else if ([type isEqualToString:HuaWeiPhone]) {HuaWeiPhone* phone [[HuaWeiPhone alloc] init];return phone;} else if ([type isEqualToString:RedmiPhone]) {RedmiPhone* phone [[RedmiPhone alloc] init];return phone;}return nil; }苹果类 - (void)sellPhone{NSLog(售卖苹果手机); }其他类也类似 我们可以把具体创建的信息放在某一个产品自己类中.这样把它封装好,然后我们客户端调用的时候就可以直接调用最外层的工厂方法: - (Factory *)sellPhone:(NSString *)type // 外层只用调用这个方法就可以获得对应的实例这样我们就可以把创建处理的内容放在对应的类中去,可以减少对于外部工厂的修改,让逻辑更紧密,逻辑封装的更好 优点 客户端只需要给工厂类传入一个正确的约定好的参数就可以获取你所需要的对象而不需要知道其创建细节一定程度上减少系统的耦合 缺点 如果我们要是在添加Cell那么我们就需要修改FactoryCell的方法违反了开闭原则。 简单来说就是违反了依赖倒置原则让高层组件client依赖于底层组件。违反这个原则的后果就是一旦底层组件改动那么高层组件也就必须改动违反了开闭原则。 小结 什么时候使用简单工厂 想完全封装隔离具体实现,让外部只能通过抽象类或者接口来操作,在上面的例子中,就是只操作factory,而不操作具体类,此时可以使用简单工厂,让客户端通过简单工厂来选择创建具体的类,不需要创建的具体过程想把创建对象的职责集中管理,一个简单啊工厂可以创建许多相关或者不相关的对象,所以可以把对象的创建集中到简单工厂中进行管理 工厂模式 工厂方法模式(Factory Method Pattern)又称为工厂模式工厂父类负责定义创建产品对象的公共接口而工厂子类则负责生成具体的产品对象即通过不同的工厂子类来创建不同的产品对象。 不同的工厂生成不同的子类.通过协议来实现一个继承的效果,这样可以统一调用协议方法,然后不同的工厂重写协议函数实现对应的一个产品的创建 这里的适用场景其实与简单工厂类似,都是创建数据行为都比较类似的对象,但是和简单工厂不同的是,在工厂方法模式中,因为常化钢建对象的责任交给了抽象工厂的子类,因此客户端需要知道其所需的产品对应的工厂子类,而不是简单工厂中的参数 工厂模式主要包括: 抽象工厂:抽象工厂负责声明具体工厂的创建产品的接口具体工厂:具体工厂负责创建产品具体产品:具体产品是工厂所创建的所有产品对象类,它用自己的方式来实现共同父类声明的接口 这对卖手机的案例我们新的UML图 通过工厂模式定义我们知道工厂模式主要是把对象的创建延迟到子类执行 创建工厂的一个抽象类 protocol PhoneMakeProtocol NSObject (idPhoneProtocol)sellPhone:(NSInteger)type; // PhoneProtocol 这个协议是意味着这个类可以被认为是我们的手机类end然后让工厂实例: // 苹果手机的工厂类interface iPhoneFactory : NSObject PhoneProtocolendimplementation iPhoneFactory- (idPhoneProtocol)sellPhone:(NSInteger)type {return [[ApplePhone alloc] init];}end产品的抽象类: interface ApplePhone : NSObject PhoneProtocol- (void)sellPhone;endimplementation ApplePhone - (void)sellPhone{NSLog(售卖苹果手机); }end这样客户端就可以根据我们不同的工厂获取不同的一个iPhone的内容 客户端调用 factory [iPhoneFactory new]; ApplePhone* phone [factory sellPhone:11]; [phone sellphone];优点 更容易扩展新版本如果需要加入新的实现只需要扩展一个新类然后继承抽象接口实现工厂方法即可。遵循了开闭原则 缺点 具体产品和工厂方法耦合因为在工厂方法中需要创建具体实例所以它们会耦合 抽象工厂模式 抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口而无须指定它们具体的类。 有时候我们需要一个工厂可以提供多个产品对象而不是单一的产品对象。比如系统中有多于一个的产品族而每次只使用其中某一产品族属于同一个产品族的产品将在一起使用 接着看新的业务: 仔细看一下这六个产品的特点我们可以把这它们划分在三个产品族里面 1、苹果产品族苹果手机苹果电脑2、小米产品族小米手机小米电脑3、华为产品族华为手机华为电脑 这样我们只需要添加艾一个新的方法就变成了一个抽象工厂 三个模式对比 当单一类型产品比较少的时候,用简单工厂模式单一产品各种定制比较多的时候,用工厂模式多种类型产品的时候,使用抽象工厂模式 抽象工厂模式和工厂模式 工厂模式针对单独产品的创建而抽象工厂注重一个产品系列的创建。如果产品系列只有一个产品的 话那么抽象工厂就退换到工厂模式了。在抽象工厂中使用工厂方法来提供具体实现这个时候他们联 合使用。工厂模式和简单工厂 两者非常类似都是用来做选择实现的。不同的地方在于简单工厂在自身就做了选择实现。而工厂模式 则是把实现延迟到子类执行。如果把工厂方法的选择实现直接在父类实现那么此时就退化为简单工厂 模式了。简单工厂和抽象工厂 简单工厂用于做选择实现每个产品的实现之间没有依赖关系。而抽象工厂实现的一个产品系列相互 之间有关联。这是他们的区别
http://www.pierceye.com/news/891173/

相关文章:

  • 猎头网站模板济源专业网站建设(制作网站)
  • kotlin做网站单页应用网站
  • 邢台网站改版开发长沙教育网站开发
  • 网站开发人员必备技能网站背景图片自动切换
  • 企业网站建立策划书有网站吗给一个
  • 外贸建站有哪些公司建设主管部门网站查询
  • 泰安市网站建设广州优化公司哪家好
  • 手机网游传奇西安关键词优化平台
  • 网站建设公司权威机构3d虚拟人物制作软件
  • 北京网站建设seo公司哪家好阿里巴巴企业邮箱登录入口
  • 广州shopify代建站新产品代理
  • html5网站特点在线搜索引擎
  • 网站搭建服务平台网站备案 关闭网站
  • 高端建站收费标准宣传设计网站
  • 视频网站数据库设计手机企业网站设计
  • 广安发展建设集团有限公司门户网站竞价推广代运营服务
  • 济南mip网站建设公司山西住房建设厅网站
  • 兰州需要做网站的公司有哪些做词云的网站
  • 红酒公司网站建设模板6841如何通过网站获取qq
  • 写一张营销型网站页面多长时间微动漫怎么制作
  • 网站架构设计师月薪多少柳州团购网站建设
  • 深圳宝安沙井网站建设网络营销推广主要做什么?有哪些方法和技巧?
  • 图书馆门户网站建设的意义开票 网站建设
  • 如何用家用电脑做网站wordpress的伪静态
  • 东营市城市和建设管理局网站网络基础知识点
  • 怎么制作网站链接转发视频网页游戏开服表怎么取消
  • 360网站seo怎么做北京商场关闭通知
  • 连云港建设公司网站工程承包信息
  • 互动网站制作建设医院网站服务
  • 用asp做网站span增城高端网站建设