单例的书写

单例模式是经常用到的一种设计模型,其特点为唯一、便捷,书写规则往往较为简便:

+(SharedInstance *)sharedInstance

{

    @synchronized(self){

        if(!shared){

            shared = [[SharedInstance alloc] init];

            //**先默认为空

            shared.appToken = @"";

            shared.key = @"";

//            shared.needGradeAppTip = YES;

            shared.isNeedShowCounties = YES;

            

            return shared;

        }

        return shared;

    }

}


或者:

+ (instancetype)sharedInstance

{

    static NSDateFormatter *formatter;

    static dispatch_once_t onceToken;

    

    dispatch_once(&onceToken, ^{

        formatter = [NSDateFormatter new];

        formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    });

    

    dispatch_once(&onceToken, ^{

        NSLog(@"this is instanceType....");

    

    });

    

    return formatter;

}




### 软件设计模型的书写方法和模板 软件设计模型的书写通常基于明确的设计目标和方法论,结合具体的建模语言(如UML)和设计模式来实现。以下是关于如何书写软件设计模型的方法和模板: #### 1. 明确需求与目标 在书写软件设计模型之前,必须清晰地定义系统的功能需求、非功能需求以及设计目标[^1]。这一步骤确保模型能够准确反映系统的需求。 #### 2. 使用标准化建模语言 UML(统一建模语言)是目前最常用的软件建模语言之一,它提供了多种图示工具来描述系统的不同方面。以下是一些常用的UML图及其用途: - **类图**:用于描述系统的静态结构,包括类、接口及其关系。 - **活动图**:用于描述业务流程或算法的工作流。 - **时序图(顺序图)**:用于描述对象之间的交互顺序。 - **状态图**:用于描述对象在其生命周期中的状态变化。 这些图可以通过工具(如Visio、StarUML、Enterprise Architect等)生成,也可以手动绘制[^3]。 #### 3. 应用设计原则 在书写软件设计模型时,应遵循面向对象设计原则以提高系统的可维护性和扩展性。常见的设计原则包括一职责原则、开闭原则、里氏代换原则、依赖倒转原则等。 #### 4. 引入设计模式 设计模式为解决常见问题提供了一套经过验证的解决方案。根据具体需求,可以选择创建型模式(如工厂方法、)、结构型模式(如适配器、外观)或行为型模式(如观察者、策略)[^3]。 #### 5. 模型驱动架构(MDA) 如果需要更高级的抽象层次,可以考虑采用模型驱动架构(MDA)。MDA通过创建机器可读的模型来描述问题域,并利用模型转换技术生成代码或其他模型[^1]。 #### 6. 编写模板示 以下是一个简的软件设计模型书写模板: ```markdown # 软件设计模型文档 ## 1. 系统概述 - 描述系统的功能需求和非功能需求。 - 明确设计目标。 ## 2. 静态结构模型 - **类图**:展示系统的主要类及其关系。 - 示代码块: ```plantuml classDiagram Class1 --|> Class2: 继承 Class1 --> Class3: 关联 ``` ## 3. 动态行为模型 - **时序图**:描述关键用的交互过程。 - 示代码块: ```plantuml @startuml participant 用户 participant 系统 用户 -> 系统: 请求服务 系统 --> 用户: 返回结果 @enduml ``` ## 4. 设计原则与模式 - 列出所遵循的设计原则及应用的设计模式。 - 示:使用模式确保全局唯一实。 ## 5. 模型驱动架构(可选) - 如果适用,说明如何使用MDA方法生成代码或模型[^1]。 ``` #### 7. 工具支持 为了提高效率,可以使用以下工具辅助书写软件设计模型: - **PlantUML**:基于文本的UML绘图工具,适合嵌入到文档中。 - **StarUML**:图形化UML建模工具,支持多种图表类型。 - **Visual Paradigm**:综合性的建模工具,支持敏捷开发和MDA。 --- ### 注意事项 - 确保模型的抽象层次适当,既不过于复杂也不过于简。 - 在团队协作中,保持模型的一致性和可理解性[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值