1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的...
这篇文章比较短,没有太多的技术原理,没有太多的冗长的源码,只是简简单单的推荐一本书:《Java设计模式及实践》一天在逛微信读书的时候,微信读书推荐了一本名为《Java设计模式及实践》的书籍,点进去一看只有5.4的评分,本来以为又是一本比较水的书,想到以前看的一些设计模式的书《大话设计模式》《Head First 设计模式》等,大部分讲的内容都不外乎于GOF的23种设计模式,这本书也应该不会逃出这些内容框架吧。我习惯性地点开了...
WeatherData.h 1#ifndef WEATHERDATA_H_INCLUDED2#define WEATHERDATA_H_INCLUDED3 4 #include <set>5 #include "Display.h" 6 7class WeatherData8{9public:
10void measurementsChanged();
11void registerObserver( Display *p_display );
12void removeObserver( Display *p_display );
1314private:
15int getTemperature() { return25; }
16int getHumidity() { return90; }
17int getPressure() { return120; }
1819 st...
上一篇的简单工厂模式虽然简单,但是存在一个很严重的问题:当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背开闭原则。如何实现新增新产品而不影响已有代码?工厂方法模式为此应运而生。工厂方法模式(Factory Method)学习难度:★★☆☆☆使用频率:★★★★★一、简单工厂版的日志记录器1.1 软件需求说明Requirement:M公司欲开发一个系统运行日志记录器...
?? 所谓模式就是在某一情景下解决某个问题的固定解决方案。 所有的创建型模式都是用作对象的创建或实例化的解决方案。 1 简单工厂模式创建对象的最简单方法是使用new来创建一个对象,如果只创建一种固定不变的对象,可以使用new来创建这个对象。如果要根据不同场景创建不同类型的对象,就可能需要采用不同的方法,就出现了不同的模式的采用和总结。如ANDROID的媒体框架中为了实现对不同媒体源的播放,就需要实...
设计模式的分类及其六大设计原则1.六大设计原则代码要考虑可维护性、可复用性、可扩展性、灵活性 1.单一职责原则:一个类别太大,只负责单一的职责。做到高内聚低耦合 2.迪米特法则:尽量不要和陌生人说话。非陌生人主要指: 2.1 对象本身this 2.2 当前对象的成员变量 2.3 以参数形式传递到当前类方法中的对象 2.4 当前对象所创建的对象 2.5 当前对象的成员变量,如果使用集合类型。那么...
1package concurrent;2 3/** 4 * 单例设计模式与多线程 (1)立即加载与饿汉模式 (2)延迟加载与懒汉模式(3)内置静态类实现单例设计模式5 * (4)枚举类实现单例设计模式6 * 7 * @author foolishbird_lmy8 * 9*/10class SingletonA {
11// 立即加载与饿汉模式12privatestatic SingletonA sa = new SingletonA();
1314private SingletonA() {
1516 }
1718publicstatic SingletonA getInstance() {
19return sa;
20 }
21}
222...
装饰设计模式:基于已经存在的功能,提供增强的功能装饰设计模式的由来:Reader ----TextReader ----MediaReader要为子类提供缓冲读的功能Reader ----TextReader ----BufferedTextReader ----MediaReader -----BufferedMediaReaderReader ----TextReader ----BufferedTextReader ----MediaReader -----BufferedMediaReader ----OtherReader -----BufferedOtherReader 既然都是提供缓冲读的功能,...
设计模式的概念1.基本定义:设计模式(Design pattern)是一套被反复使用的代码设计经验的总结。使用设计模式的目的是为了可重用代码、让代码更容易被他人理解。设计模式是是软件工程的基石脉络,如大厦的结构一样。2.Design pattern的四大要素:模式名称(Name),问题(Question),解决方案(Solution),效果(Efftive)。3.OO(面向对象)的六大原则:单一职责原则,开闭原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米...
一、内容题纲 设计模式概念设计模式分类设计模式原则单例模式多例模式工厂模式代理模式原型模式 二、具体内容 设计模式概念 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结...
1.单一职责原则:一个类只负责一项职责单一职责原则告诉我们实现类要职责单一2.里氏替换原则:子类可以扩展父类的功能,但却不能改变父类原有的功能里氏替换原则告诉我们不要破坏继承体系3.依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象依赖倒置原则告诉我们要面向接口编程4.接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口...
单一职责原则
概念:不要存在多余一个导致类变更的原因;即一个类只负责一项职责;原因:如果类T负责两个不同的职责P1和职责P2,当职责P1需求发生改变而修改类T时,原本运行正常的职责P2可能故障;优点:降低类的复杂性;提高类的可读性;变更引起的风险降低里氏替换原则
概念:所有引用基类的地方必须能透明地使用其子类的对象。子类可以扩展父类的功能,但不能改变父类原有的功能;原因:不遵循该原则,代码出错的概率会大大增加...
1,开闭原则(Open Close Principle:OCP)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行扩展时候,不能修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使用程序的扩展性好,易于维护和升级。使用接口和抽象类达到这样的效果。2,里氏代换原则(Liskov Substitution Principle)里氏代换原则面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基...
在日常的项目开发中,常常会遇到一个类有且只有一个实例的情况,这就是典型的单例模式。关于单例模式的设计有三种思路:思路一: 1.构造方法私有; 2.声明全局的私有的静态的类的对象为null; 3.提供公有的静态的getInstance方法,判断对象是否为空,若为空,则创建对象,否则,直接返回对象; public class Singleton{private Singleton(){}private static Singleton singletonObject ;public static ...
一、概述在 iOS 开发中,MVC(Model View Controller)是构建iOS App的标准模式,是苹果推荐的一个用来组织代码的权威范式。Apple甚至是这么说的。在MVC下,所有的对象被归类为一个Model,一个View,和一个Controller。Model持有数据,View显示与用户交互的界面,而ViewController调解Model和View之间的交互。现在,MVC 依然是目前主流客户端编程框架,但同时它也被调侃成Massive View Controller(重量级视图控制器),想必开发者...