zoukankan      html  css  js  c++  java
  • iOS设计模式-原型模式

    | 导语 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

    通过深复制(克隆、拷贝)一个指定类型的对象来创建更多同类型的对象。这个指定的对象可被称为“原型”对象,也就是通过复制原型对象来得到更多同类型的对象。即原型设计模式。iOS中使用copy协议完成这个过程。

    原型模式主要用于对象的深复制,它的核心是就是类图中的原型类Prototype。

    原型模式的核心思想是把复制的过程封闭到对象的内部完成。第一个好处是修改复制的过程而不影响外部的使用者。

    原型模式的优点及使用场景

    1. 简化对象的创建,把创建的过程封闭到对象的内部。

      在需要重复地创建相似对象时可以考虑使用原型模式。比如需要在一个循环体内创建对象,假如对象创建过程比较复杂或者循环次数很多的话,使用原型模式可以简化创建过程,而且可以使系统的整体性能提高很多。
    2. 由于复制的过程是封闭的,这样就降低了与客户端的耦合,提升了稳定性。

      如果复制的过程对client是完全透明的,那么无疑增加了client的职责,所以一旦对复制的过程进行修改,那么难免对client的稳定性造成影响(client有可能被改出bug)。
    3. 集中创建,便于管理。

      由于创建的过程封闭在对象内部完成,只需修改对象内部一处,所有调用深复制的地方全部生效。

    总结:

    原型模式符合的设计原则:

    1.单一职责原则。client只需关注自己的业务,不用负责复制的过程。

    2.迪米特法则(最少知道原则)。Prototype隐藏复制的过程,减少耦合。且Prototype只需符合copying协议即可,client不用知道Prototype是具体哪个类,这样的好处是便于派生。

    自选股示例:

    数据部分示例很多,这里不摆图列举了。例如,盈亏数据

    CProfitLossSummaryHistoryData。

    如果
  • 相关阅读:
    MySQL "show users"
    MySQL
    A MySQL 'create table' syntax example
    MySQL backup
    MySQL show status
    Tomcat, pathinfo, and servlets
    Servlet forward example
    Servlet redirect example
    Java servlet example
    How to forward from one JSP to another JSP
  • 原文地址:https://www.cnblogs.com/max5945/p/5718898.html
Copyright © 2011-2022 走看看