那里做网站最好东莞四网合一网站建设
那里做网站最好,东莞四网合一网站建设,金华百度推广公司,成都房地产网站开发C设计模式是一套被广泛认可的用于解决常见对象导向设计问题的最佳实践。设计模式可以帮助开发者编写更加清晰、可维护和可扩展的代码。设计模式通常分为三大类#xff1a;创建型、结构型和行为型。下面#xff0c;我将分别介绍这三类设计模式的概念、应用场景和C实现示例。
…C设计模式是一套被广泛认可的用于解决常见对象导向设计问题的最佳实践。设计模式可以帮助开发者编写更加清晰、可维护和可扩展的代码。设计模式通常分为三大类创建型、结构型和行为型。下面我将分别介绍这三类设计模式的概念、应用场景和C实现示例。
创建型设计模式
创建型设计模式关注于对象的创建机制帮助使系统独立于如何创建、组合和表示对象。 单例模式Singleton 概念确保一个类只有一个实例并提供一个全局访问点。应用场景当需要控制实例数目节省系统资源的时候。示例class Singleton {
private:static Singleton* instance;Singleton() {}
public:static Singleton* getInstance() {if (instance nullptr) {instance new Singleton();}return instance;}
};
Singleton* Singleton::instance nullptr;工厂方法模式Factory Method 概念定义一个用于创建对象的接口让子类决定实例化哪一个类。应用场景在编程时不知道最终需要创建的对象的具体类型。示例class Product {
public:virtual ~Product() {}virtual void Operation() 0;
};class ConcreteProductA : public Product {
public:void Operation() override {// 实现代码}
};class Creator {
public:virtual ~Creator() {}virtual Product* FactoryMethod() 0;
};class ConcreteCreatorA : public Creator {
public:Product* FactoryMethod() override {return new ConcreteProductA();}
};结构型设计模式
结构型设计模式关注于如何组合类和对象以获得更大的结构。
适配器模式Adapter 概念允许将一个类的接口转换成客户期望的另一个接口。应用场景当需要使用现有的类而其接口不符合你的需求时。示例class Target {
public:virtual ~Target() {}virtual void Request() 0;
};class Adaptee {
public:void SpecificRequest() {// 特定请求}
};class Adapter : public Target {
private:Adaptee* adaptee;
public:Adapter(Adaptee* a) : adaptee(a) {}void Request() override {adaptee-SpecificRequest();}
};行为型设计模式
行为型设计模式关注于对象之间的职责分配。
观察者模式Observer 概念定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新。应用场景当一个对象的改变需要同时改变其他对象而且它不知道具体有多少对象有待改变时。示例class Observer {
public:virtual ~Observer() {}virtual void Update(int) 0;
};class Subject {
public:virtual ~Subject() {}virtual void Attach(Observer*) 0;virtual void Detach(Observer*) 0;virtual void Notify() 0;
};class ConcreteSubject : public Subject {
private:std::listObserver* observers;int state;
public:void Attach(Observer* o) override {observers.push_back(o);}void Detach(Observer* o) override {observers.remove(o);}void Notify() override {for (Observer* o : observers) {o-Update(state);}}void SetState(int value) {state value;Notify();}
};这些设计模式是C面向对象设计中的基石通过它们可以创建灵活、可维护和可扩展的软件。理解和掌握这些模式对于高级C开发者来说非常重要。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87970.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!