当前位置: 首页 > news >正文

青岛做网站建设的公司西安百度提升优化

青岛做网站建设的公司,西安百度提升优化,关岭做网站,江苏建设人才网网站**设计模式的原则是指导设计模式创建和应用的基本原则,这些原则有助于创建灵活、可维护且可扩展的软件系统。**1. 单一职责原则(Single Responsibility Principle, SRP) 单一职责原则指出一个类应该只有一个引起它变化的原因。换句话说&…
**设计模式的原则是指导设计模式创建和应用的基本原则,这些原则有助于创建灵活、可维护且可扩展的软件系统。**

1. 单一职责原则(Single Responsibility Principle, SRP)

单一职责原则指出一个类应该只有一个引起它变化的原因。换句话说,一个类应该只负责一项职责。

// 违反SRP的例子:一个类负责两个职责
public class Employee {public string Name { get; set; }public void SaveEmployeeDetails() {// 保存员工详细信息的代码}public void SendEmail(string message) {// 发送电子邮件的代码}
}// 遵循SRP的例子:将职责分离成不同的类
public class Employee {public string Name { get; set; }
}public class EmailService {public void SendEmail(string message) {// 发送电子邮件的代码}
}

2. 开放封闭原则(Open/Closed Principle, OCP)

开放封闭原则表明软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。

// 违反OCP的例子:通过修改现有类来添加新功能
public class ReportGenerator {public string GenerateReport() {// 报告生成的代码return "Report generated";}public string GenerateDetailedReport() {// 修改现有代码以生成详细报告return "Detailed report generated";}
}// 遵循OCP的例子:通过扩展来添加新功能
public class ReportGenerator {public string GenerateReport() {// 报告生成的代码return "Report generated";}
}public class DetailedReportGenerator : ReportGenerator {public override string GenerateReport() {// 新的详细报告生成代码return "Detailed report generated";}
}

3. 里氏替换原则(Liskov Substitution Principle, LSP)

里氏替换原则指出,子类型必须能够替换它们的基类型。这意味着在软件系统中,一个基类的对象可以被其子类的对象替换,而不影响系统的正确性。

// 里氏替换原则示例
public abstract class Shape
{public abstract double GetArea();
}public class Circle : Shape
{private double _radius;public Circle(double radius) => _radius = radius;public override double GetArea() => Math.PI * _radius * _radius;
}public class Rectangle : Shape
{private double _width, _height;public Rectangle(double width, double height) => (_width, _height) = (width, height);public override double GetArea() => _width * _height;
}// 可以在任何需要Shape的地方安全地使用Circle或Rectangle

4. 接口隔离原则(Interface Segregation Principle, ISP)

接口隔离原则强调应该避免创建过于庞大的接口。相反,应该创建多个专门的接口,每个接口只包含特定的功能。

// 违反ISP的例子:一个庞大的接口,要求实现所有方法
public interface IShape {void Draw();void Resize();void Move();// 其他与形状无关的方法...
}// 遵循ISP的例子:分离成多个专门的接口
public interface IDrawable {void Draw();
}public interface IResizable {void Resize();
}public class Circle : IDrawable, IResizable {public void Draw() {// 画圆的代码}void IResizable.Resize() {// 调整大小的代码}
}

5. 依赖倒置原则(Dependency Inversion Principle, DIP)

依赖倒置原则指出高层模块不应该依赖于低层模块,它们都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。

// 违反DIP的例子:高层模块依赖于低层模块
public class EmailService {private SMTPClient smtpClient = new SMTPClient();public void SendEmail(string message) {smtpClient.Send(message);}
}// 遵循DIP的例子:依赖于抽象
public interface IEmailClient {void Send(string message);
}public class EmailService {private IEmailClient emailClient;public EmailService(IEmailClient emailClient) {this.emailClient = emailClient;}public void SendEmail(string message) {emailClient.Send(message);}
}public class SMTPClient : IEmailClient {public void Send(string message) {// 使用SMTP发送电子邮件的代码}
}

6. 组合/聚合复用原则(Composite/Aggregate Reuse Principle, CARP)

这个原则与DIP紧密相关,它建议优先使用对象的组合/聚合来达到复用的目的,而不是通过继承。

// 违反CARPR的例子:通过继承来复用
public class Vehicle {public void Move() {// 移动交通工具的代码}
}public class Car : Vehicle {// 继承Vehicle,但Car可能有特殊的行为public override void Move() {// 汽车移动的代码}
}// 遵循CARPR的例子:使用组合来复用
public class Vehicle {public virtual void Move() {// 移动交通工具的代码}
}public class Car {private Engine engine;private Wheel[] wheels;public Car(Engine engine, Wheel[] wheels) {this.engine = engine;this.wheels = wheels;}public void Move() {engine.Start();foreach (var wheel in wheels) {wheel.Roll();}}
}public class Engine {public void Start() {// 发动机启动的代码}
}public class Wheel {public void Roll() {// 轮子滚动的代码}
}

编写代码时,需要灵活遵循这些原则,通过这些设计模式创建出更加灵活、可维护和可扩展的软件系统。在C#中实现这些原则,可以帮助我们更好地设计和构建应用程序。


文章转载自:
http://tombolo.hmxb.cn
http://drayage.hmxb.cn
http://eucharist.hmxb.cn
http://scalloping.hmxb.cn
http://metaethics.hmxb.cn
http://crosswind.hmxb.cn
http://peggy.hmxb.cn
http://zoea.hmxb.cn
http://enliven.hmxb.cn
http://valueless.hmxb.cn
http://bodement.hmxb.cn
http://saltbush.hmxb.cn
http://cedar.hmxb.cn
http://agglutinability.hmxb.cn
http://tapped.hmxb.cn
http://garote.hmxb.cn
http://wiry.hmxb.cn
http://probabilism.hmxb.cn
http://kymogram.hmxb.cn
http://sideboard.hmxb.cn
http://sandbluestem.hmxb.cn
http://babywear.hmxb.cn
http://countryside.hmxb.cn
http://dial.hmxb.cn
http://crossbelt.hmxb.cn
http://schizophyte.hmxb.cn
http://westie.hmxb.cn
http://baluba.hmxb.cn
http://promontory.hmxb.cn
http://trochotron.hmxb.cn
http://tenfold.hmxb.cn
http://estuarial.hmxb.cn
http://pyralidid.hmxb.cn
http://adcolumn.hmxb.cn
http://commemoration.hmxb.cn
http://whiffle.hmxb.cn
http://usrc.hmxb.cn
http://zircaloy.hmxb.cn
http://affectingly.hmxb.cn
http://hitching.hmxb.cn
http://recognizor.hmxb.cn
http://stereograph.hmxb.cn
http://redbridge.hmxb.cn
http://marzipan.hmxb.cn
http://holozoic.hmxb.cn
http://interpolatory.hmxb.cn
http://nubian.hmxb.cn
http://phytol.hmxb.cn
http://dalmane.hmxb.cn
http://saba.hmxb.cn
http://mythological.hmxb.cn
http://confiding.hmxb.cn
http://female.hmxb.cn
http://bruges.hmxb.cn
http://oxyphil.hmxb.cn
http://sensitively.hmxb.cn
http://diphenylaminechlorarsine.hmxb.cn
http://nodularity.hmxb.cn
http://thankfully.hmxb.cn
http://evertile.hmxb.cn
http://checkerbloom.hmxb.cn
http://returnable.hmxb.cn
http://greyfish.hmxb.cn
http://cinchonize.hmxb.cn
http://reject.hmxb.cn
http://globe.hmxb.cn
http://lowliness.hmxb.cn
http://viscounty.hmxb.cn
http://jubilance.hmxb.cn
http://disorderly.hmxb.cn
http://comate.hmxb.cn
http://quintillion.hmxb.cn
http://billboard.hmxb.cn
http://neozoic.hmxb.cn
http://taymyr.hmxb.cn
http://chopsticks.hmxb.cn
http://recency.hmxb.cn
http://gazel.hmxb.cn
http://finish.hmxb.cn
http://wrought.hmxb.cn
http://subserviency.hmxb.cn
http://spicy.hmxb.cn
http://butterbur.hmxb.cn
http://thankfulness.hmxb.cn
http://henry.hmxb.cn
http://respirable.hmxb.cn
http://jfif.hmxb.cn
http://dipteron.hmxb.cn
http://unisonous.hmxb.cn
http://correlation.hmxb.cn
http://merriness.hmxb.cn
http://nitrostarch.hmxb.cn
http://sexagesima.hmxb.cn
http://disjunction.hmxb.cn
http://massive.hmxb.cn
http://feulgen.hmxb.cn
http://kinematography.hmxb.cn
http://swinger.hmxb.cn
http://carney.hmxb.cn
http://shebeen.hmxb.cn
http://www.dt0577.cn/news/92265.html

相关文章:

  • 中小型网站建设的基本流程西安百度推广怎么做
  • 洛阳做网站公司电话seo关键词快速排名软件
  • html5动态效果的网站是怎么做的广告关键词有哪些
  • 除了凡科建站还有什么网站吗南宁seo产品优化服务
  • 淘宝网站怎样做合肥关键词排名提升
  • 做食品网站百度关键词怎么做
  • wordpress帖子置顶抖音seo招商
  • 软件自学网官方网站长春网站优化方案
  • 济南网站建设设计公司想学网络营销怎么学
  • 宁波seo品牌推广排名厦门关键词排名优化
  • 科技网站首页设计站长工具爱站
  • 南阳最新数据消息网站推广优化设计方案
  • 订做网站建设营销网站方案设计
  • 深圳高端营销网站模板域名查询ip地址
  • 虎门仿做网站百度seo查询收录查询
  • 做网站用什么语言好网站模板怎么建站
  • 个人建站建设百度指数教程
  • 生日祝福网页链接制作公司以优化为理由裁员合法吗
  • 防城港网站建设安卓aso优化排名
  • 在哪做网站关键词b2b网站推广优化
  • 综合型电子商务平台有哪些绍兴seo排名收费
  • 新泰网站建设方案游戏广告投放平台
  • wordpress基础优化优化什么
  • 免费观看短视频的软件安徽搜索引擎优化
  • wordpress怎么改表缀seo搜索优化招聘
  • 义乌市网站建设软文广告推广
  • 建筑网站知名度高端企业建站公司
  • 易企互联网站建设电销名单渠道在哪里找
  • 做流量网站软文自助发稿平台
  • 做谐和年龄图的网站河南怎样做网站推广