随笔分类 -  DesignPattern

DesignPattern
摘要:创建型模式 原型模式 原型模式主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。 适用情况: 一个复杂对象,具有自我复制功能,统一一套接口。 阅读全文
posted @ 2017-11-03 00:25 lsgxeva 阅读(270) 评论(0) 推荐(0) 编辑
摘要:创建型模式 建造者模式 1) Builder:为创建产品各个部分,统一抽象接口。 2) ConcreteBuilder:具体的创建产品的各个部分,部分A, 部分B,部分C。 3) Director:构造一个使用Builder接口的对象。 4) Product:表示被构造的复杂对象。 Concrete 阅读全文
posted @ 2017-11-02 23:17 lsgxeva 阅读(237) 评论(0) 推荐(0) 编辑
摘要:创建型模式 抽象工厂 阅读全文
posted @ 2017-11-02 21:33 lsgxeva 阅读(248) 评论(0) 推荐(0) 编辑
摘要:设计模式的六大原则 开闭原则:模块应尽量在不修改原代码(闭)的情况下进行扩展(开)。即在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。 里氏代换原则:如果调用的是父类的话,那么换成子类也完全可以运行。 派生类能够在基类的基础上增加新的行为。只有当派生类可以替换掉基类,且软件单位 阅读全文
posted @ 2017-11-02 20:14 lsgxeva 阅读(377) 评论(0) 推荐(0) 编辑
摘要:创建型模式 工厂模式 阅读全文
posted @ 2017-11-02 20:06 lsgxeva 阅读(225) 评论(0) 推荐(0) 编辑
摘要:创建型模式 简单工厂模式 阅读全文
posted @ 2017-11-02 19:46 lsgxeva 阅读(261) 评论(0) 推荐(0) 编辑
摘要:创建型模式 单例模式 /** * 创建型模式 单例模式 懒汉式 * GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。 * * 实现单例步骤常用步骤 * a) 构造函数私有化 * b) 提供一个全局的静态方法(全局访问点) * c) 在类中定义一个静态 阅读全文
posted @ 2017-11-02 18:44 lsgxeva 阅读(340) 评论(0) 推荐(0) 编辑
摘要:依赖、关联、聚合和组合之间的区别 在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,这一点在我的前一篇博文《设计模式中类的 阅读全文
posted @ 2017-11-02 17:08 lsgxeva 阅读(4475) 评论(1) 推荐(3) 编辑
摘要:C++ 设计模式 依赖倒置原则 简单示例 阅读全文
posted @ 2017-11-02 16:45 lsgxeva 阅读(2247) 评论(0) 推荐(1) 编辑
摘要:C++ 设计模式 开放封闭原则 简单示例 开放封闭原则(Open Closed Principle)描述 符合开放封闭原则的模块都有两个主要特性: 1. 它们 "面向扩展开放(Open For Extension)"。 也就是说模块的行为是能够被扩展的。当应用程序的需求变化时,我们可以使模块表现出全 阅读全文
posted @ 2017-10-24 01:22 lsgxeva 阅读(1203) 评论(0) 推荐(0) 编辑
摘要:UML基础系列:类图 类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,如关联、依赖、聚合等,还包括类的内部结构(类的属性和操作)。类图描述的是静态关系,在系统的整个生命周期中都是有效的。对象图是类图的实例,它们的不同之处在于对象图显示类图的多个对象实例,而不是实际的类。由于对象存 阅读全文
posted @ 2017-10-24 01:08 lsgxeva 阅读(883) 评论(0) 推荐(0) 编辑
摘要:面向对象程序设计基本概念 重点: C++中的 多态 和 指针间接赋值 1): 多态的三个条件 a: 子类继承父类 b: 虚函数(虚表及虚表指针) c: 父类引用或指针指向子类对象(参数类型的逆变和返回类型的协变) // 参数类型的逆变(contravariance)是指实现的参数类型是接口或委托定义 阅读全文
posted @ 2017-10-23 21:05 lsgxeva 阅读(5170) 评论(0) 推荐(0) 编辑
摘要:Visual paradigm软件介绍 说起Visual Paradigm你可能并不陌生,因为此前有一款功能强大的UML软件叫Visual Paradigm for UML,在这款软件在v11.1的时候,它的生产商Visual Paradigm将旗下的三个产品——Agilian、Visual Par 阅读全文
posted @ 2017-10-23 11:01 lsgxeva 阅读(7839) 评论(0) 推荐(1) 编辑
摘要:依赖倒置原则(Dependency Inversion Principle) 很多软件工程师都多少在处理 "Bad Design" 时有一些痛苦的经历。如果发现这些 "Bad Design" 的始作俑者就是我们自己时,那感觉就更糟糕了。那么,到底是什么让我做出一个能称为 "Bad Design" 的 阅读全文
posted @ 2017-10-17 22:51 lsgxeva 阅读(429) 评论(0) 推荐(0) 编辑
摘要:最少知识原则(Least Knowledge Principle) 最少知识原则(Least Knowledge Principle),或者称迪米特法则(Law of Demeter),是一种面向对象程序设计的指导原则,它描述了一种保持代码松耦合的策略。其可简单的归纳为: Each unit sho 阅读全文
posted @ 2017-10-17 22:50 lsgxeva 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:接口分离原则(Interface Segregation Principle) 接口分离原则(Interface Segregation Principle)用于处理胖接口(fat interface)所带来的问题。如果类的接口定义暴露了过多的行为,则说明这个类的接口定义内聚程度不够好。换句话说,类 阅读全文
posted @ 2017-10-17 22:49 lsgxeva 阅读(929) 评论(0) 推荐(0) 编辑
摘要:开放封闭原则(Open Closed Principle) 在面向对象的设计中有很多流行的思想,比如说 "所有的成员变量都应该设置为私有(Private)","要避免使用全局变量(Global Variables)","使用运行时类型识别(RTTI:Run Time Type Identificat 阅读全文
posted @ 2017-10-17 22:48 lsgxeva 阅读(474) 评论(0) 推荐(0) 编辑
摘要:单一职责原则(SRP:The Single Responsibility Principle) 一个类应该有且只有一个变化的原因。 There should never be more than one reason for a class to change. 为什么将不同的职责分离到单独的类中是 阅读全文
posted @ 2017-10-17 22:46 lsgxeva 阅读(389) 评论(0) 推荐(0) 编辑
摘要:里氏替换原则(Liskov Substitution Principle) 开放封闭原则(Open Closed Principle)是构建可维护性和可重用性代码的基础。它强调设计良好的代码可以不通过修改而扩展,新的功能通过添加新的代码来实现,而不需要更改已有的可工作的代码。抽象(Abstracti 阅读全文
posted @ 2017-10-17 22:44 lsgxeva 阅读(419) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示