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

广东网站系统建设怎么样查询建设网站

广东网站系统建设,怎么样查询建设网站,开发网站的项目背景描述,帝国cms做中英文网站设计模式知道#xff0c;套路是个啥#xff1f;关于设计模式的说法#xff0c;网上一搜一大堆#xff0c;咱就不再去说了。我的理解#xff0c;设计模式就是很多NB的大佬们总结出来的#xff0c;用来处理特定情况的标准解决方案。那既然是标准方案#xff0c;就一定会有… 设计模式知道套路是个啥关于设计模式的说法网上一搜一大堆咱就不再去说了。我的理解设计模式就是很多NB的大佬们总结出来的用来处理特定情况的标准解决方案。那既然是标准方案就一定会有套路会有标准的样子。几种常见的设计模式都有各自的套路模板。下面进入主题咱们一个一个来说。一、抽象工厂模式抽象工厂主要的场景是创建一系列相关或相似的对象。注意这个相关或相似。因为有这个特性我们就可以抽取出共同点来形成接口或抽象类然后通过这个接口或抽象类来派生出各个对象。为什么叫抽象工厂不知道而且不重要。在我看来这只是个名字记下就好。一个东西出来总要有个名字的有个人跑出来说就叫抽象工厂吧。于是就叫抽象工厂了。就像一个人做了一个网站让别人在上面卖东西后来做大了需要吹NB了得给这个经营方式起个名字于是B2C 就出现了。现在人们创业做电商头一件事先讨论做 B2B 还是 B2C。做反了。先做吧挣钱要紧。做大了你说叫什么都会有人听、有人信。说跑题了:P先写几个类型包括接口和实体类后面会用到// 接口定义 public interface ILaptop {void GetInfo(); } public interface IMobile {void GetInfo(); }// 实体类一 public class MateBook : ILaptop {public void GetInfo(){Console.WriteLine(I am MateBook);} } public class Mac : ILaptop {public void GetInfo(){Console.WriteLine(I am Mac);} }// 实体类二 public class Mate : IMobile {public void GetInfo(){Console.WriteLine(I am Mate);} } public class IPhone : IMobile {public void GetInfo(){Console.WriteLine(I am IPhone);} }有了上面的类型我们来看看抽象工厂的套路。定义public interface IFactory {ILaptop CreateLaptop();IMobile CreateMobile(); } public class FactoryA : IFactory {public ILaptop CreateLaptop(){return new MateBook();}public IMobile CreateMobile(){return new Mate();} } public class FactoryB : IFactory {public ILaptop CreateLaptop(){return new Mac();}public IMobile CreateMobile(){return new IPhone();} }调用public static class Example {public static void ExampleTest(){var factoryA  new FactoryA();var laptopA  factoryA.CreateLaptop();var mobileA  factoryA.CreateMobile();laptopA.GetName();mobileA.GetName();var factoryB  new FactoryB();var laptopB  factoryB.CreateLaptop();var mobileB  factoryB.CreateMobile();laptopB.GetName();mobileB.GetName();}//result ://I am MateBook//I am Mate//I am Mac//I am IPhone }这个模式里面核心的部分就是工厂接口的定义public interface IFactory {ILaptop CreateLaptop();IMobile CreateMobile(); }在这个工厂接口中加入了多个相似的接口。于是调用端可以很简单的以类似的方式去调用而工厂实体中对内部引用的实体进行区分。一个典型的场景是一个程序对着很多种数据库。这样的情况可以在工厂实体中区分具体连接哪种数据库而内部的引用实体则各自对应不同的数据库。外部调用时只需要在初始化时确认使用哪种数据库后面的 CRUD 操作就直接使用就成调用端不需要考虑数据库的区别。事实上这也是抽象工厂用的最多的场景。二、工厂模式去掉了抽象两个字居然还是一个模式而且是一个不同的模式。这个名字起的够混乱。不过老实说工厂模式跟抽象工厂模式很像区别是抽象工厂模式是在工厂模式的基础上又做了一层抽象。看套路public interface IFactory {ILaptop CreateLaptop(); } public class FactoryA : IFactory {public ILaptop CreateLaptop(){return new MateBook();} } public class FactoryB : IFactory {public ILaptop CreateLaptop(){return new Mac();} } public static class Example {public static void Test(){var factoryA  new FactoryA();var laptopA  factoryA.CreateLaptop();laptopA.GetName();var factoryB  new FactoryA();var laptopB  factoryB.CreateLaptop();laptopB.GetName();}//result ://I am MateBook//I am Mac }看到了吧跟抽象工厂确实很相似。不过在使用上工厂模式用得会更多。任何类都可以按工厂模式来写。这个模式最大的作用是把定义和实体做了分层。开发时可以一部分人去定义接口而另一部分人去实现这个接口。而且工作模式可以随时扩展为抽象工厂。比方一开始只是可能有多种数据库但具体是哪些数据库还没确定就可以先按工厂模式写等数据库定下来随时就很容易转为抽象工厂了。三、建造者模式这个名称起的更不知所云了就因为一个 Builder?其实他说的是这么个事。我们经常看到这样的代码var mobile  new MobileBuilder().WithBrand(Apple).WithModel(13Pro).WithMemory(512G).Build();看着是不是很洋气来看看这个套路// 这就是个数据模型 public class Mobile {public string Brand { get; set; }public string Model { get; set; }public string Memory { get; set; } }// 这才是 Builder 的定义 public class MobileBuilder {private readonly Mobile _mobile  new Mobile();public MobileBuilder WithBrand(string brand){_mobile.Brand  brand;return this;}public MobileBuilder WithModel(string model){_mobile.Model  model;return this;}public MobileBuilder WithMemory(string memory){_mobile.Memory  memory;return this;}public Mobile Build(){return _mobile;} }然后就可以这样调用了public static class Example {public static void Test(){var mobile  new MobileBuilder().WithBrand(Apple).WithModel(13Pro).WithMemory(512G).Build();Console.WriteLine(mobile.ToJson());}//result ://{Brand:Apple,Model:13Pro,Memory:512G} }个人而言我很喜欢这个套路没有别的就是洋气非常的洋气。应用场景也非常多所有数据的 DTO都可以么写。四、原型模式这个模式听着会有点陌生。看过一些文章也把它归为是创建型模式。实际上我更倾向于把它看作是一种代码结构而不是模式。这种结构最大的作用是复制 - 通过复制一个存在的实例来创建新实例。代码是这样的public class MobilePackage {public string Color { get; set; }public Mobile Mobile { get; set; }// 下面才是模式代码public MobilePackage ShallowCopy(){return (MobilePackage)this.MemberwiseClone();}public MobilePackage DeepCopy(){var clone  (MobilePackage)this.MemberwiseClone();clone.Color  new string(Color);clone.Mobile  new Mobile{Brand  new string(Mobile.Brand),Model  new string(Mobile.Model),Memory  new string(Mobile.Memory),};return clone;} }看看其实就是一段复制代码。但是要注意对于深拷贝和浅拷贝涉及到指针和引用如果你不熟悉了解后再用。看一下上面的结果public static class Example {public static void Test(){var mobilePackage  new MobilePackage{Color  White,Mobile  new Mobile{Brand  Apple,Model  13Pro,Memory  512G,}};var shallowCopied  mobilePackage.ShallowCopy();var deepCopied  mobilePackage.DeepCopy();mobilePackage.Color  Black;mobilePackage.Mobile.Brand  Huawei;mobilePackage.Mobile.Model  Mate;Console.WriteLine(mobilePackage.ToJson());Console.WriteLine(shallowCopied.ToJson());Console.WriteLine(deepCopied.ToJson());}//result://{Color:Black,Mobile:{Brand:Huawei,Model:Mate,Memory:512G}}//{Color:White,Mobile:{Brand:Huawei,Model:Mate,Memory:512G}}//{Color:White,Mobile:{Brand:Apple,Model:13Pro,Memory:512G}} }结果和你理解的是不是一样如果不一样去研究一下值和引用的区别。另外C# 10 里新出来的 Record就是一个典型的原型模式的类型也可以了解一下。五、单例模式单例模式也是一个用处非常大的模式而且这个名字起得挺直白。单例模式简单点说就是不管你 new 多少回实际应用全局内存中只会有一份实例。套路代码特别简单public sealed class Singleton {private static Singleton _instance;private static readonly object _locker  new object();private Singleton(){}public static Singleton GetInstance(){if (_instance  null){lock (_locker){if (_instance  null){_instance  new Singleton();}}}return _instance;} }这里有两个注意点类声明用到 sealed 关键字以确保这个类不会被派生。类构造函数用了 private以确保这个类不会被 new。这本身与单例无关只是通过这种方式来表明这是一个单例。控制单例的最核心的代码其实是下面的 GetInstance() 方法。调用时就是下面一行代码Singleton singleton  Singleton.GetInstance();就OK了。设计模式有很多种对应的套路也有很多。其中有一些是简单无脑的套路像上面的单例而另一些就会比较复杂。不过既然是套路总是有固定的代码或结构可循的。我这个主题打算分几篇来写。这是第一篇。最后做个小注解套路虽简单也要吃透了再用。而且有时候简单的代码就能很好地完成任务一定不要过度使用。喜欢就来个三连让更多人因你而受益
http://www.pierceye.com/news/935887/

相关文章:

  • 在线网站设计工具腾讯做的电子商务网站
  • 重庆建设工程证照查询网站东莞松山湖
  • 唐山市政建设总公司网站南阳网站推广招聘
  • wordpress搭建网站网站建立网络优化
  • 杭州住房和城乡建设部网站东莞常平粤海水务
  • 网站设计方案案例yw55516can优物入口
  • 重庆有哪些做网站公司好丹东 建设集团 招聘信息网站
  • 深圳高端网站建设建设凡科网站
  • 类似织梦的建站cms百度广州分公司待遇
  • 仿qq商城版淘宝客网站源码模板+带程序后台文章dede织梦企业程序上海专业制作网页
  • 网站建设服务8合肥网红打卡地
  • 网站按关键词显示广告图片如何在本地搭建网站
  • 安徽网站建设认准-晨飞网络域名和网站建设
  • 上海人才网最新招聘信息官方网站互联网软件
  • 网站备案审核流程图长治专业做网站
  • 网站建设的参考文献英文北京市住房建设官网站
  • 网站文件夹命名seo大连网站建设方案咨询
  • 重庆推广一个网站网站标题flash
  • 潍坊住房与城乡建设局网站邮箱号怎么注册
  • 有没有免费开网站的电子商务网站建设讨论
  • 拓者室内设计网站东方甄选采用了哪些网络营销方式
  • 电子商务网站开发案例dw怎么制作好看的个人网页
  • 爱站网 关键词挖掘工具站长工具wordpress登陆框
  • dede手机网站更新实时新闻
  • 信息化建设 网站作用专业设计网站公司
  • 秦皇岛金洋建设集团网站找人做小程序要多少钱
  • 郑州专业做网站企业wordpress 添加文件权限
  • 企业网站托管套餐南通企业建站系统模板
  • 汉中网站建设服务网站宣传推广平台
  • 关于科技园区建设文章的网站软文兼职10元一篇