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

政府网站建设费用营销手段有哪些

政府网站建设费用,营销手段有哪些,延安网站建设哪家专业,wordpress函数冲突设计模式 文章目录 设计模式工厂模式创建方法(Create Methods)简单工厂(Simple Factory)工厂方法(Method Factory)抽象工厂(Abstract Factroy) 策略模式 工厂模式 创建方法&#xf…

设计模式

文章目录

  • 设计模式
    • 工厂模式
      • 创建方法(Create Methods)
      • 简单工厂(Simple Factory)
      • 工厂方法(Method Factory)
      • 抽象工厂(Abstract Factroy)
    • 策略模式

工厂模式

创建方法(Create Methods)

调用构造函数进行封装,隐藏创建细节体现代码意图,增强代码可维护性

例如我们有一个部门,部门中有一个工种程序员

public class Programmer { } // 程序员类
public class Department // 部门类
{// 这是一个创建方法(也可以写成静态)public Programmer CreateEmployee(){return new Programmer();}
}

调用创建方法

Department department = new Department();
Programmer programmer = department.CreateEmployee();

简单工厂(Simple Factory)

现在部门增加了一个工种,设计师工种,那么我们使用简单工厂模式,通过给定参数的不同来创建不同的对象

// 工种枚举
public enum EEmployeeType
{Programmer,Designer
}
public class Employee {} // 工种父类
public class Programmer : Employee { } // 程序员类
public class Designer : Employee { } // 设计师类
public class Department // 部门类
{// 用简单工厂实现创建方法public Employee CreateEmployee(EEmployeeType employeeType){Employee employee = new Employee();switch (employeeType){case EEmployeeType.Programmer:employee = new Programmer();break;case EEmployeeType.Designer:employee = new Designer();break;default:throw new System.ArgumentException("Invalid employee type");}return employee;}
}

调用创建方法

Department department = new Department();
Employee programmer = department.CreateEmployee(EEmployeeType.Programmer);
Employee designer = department.CreateEmployee(EEmployeeType.Designer);

工厂方法(Method Factory)

  1. 创建子类工厂

如果现在又又需要增加工种,那么在简单工厂的基础上我们只能通过修改CreateEmployee方法的实现细节,不符合违背了开闭原则(对象应该对扩展开放,修改封闭),那么我们使用工厂方法,将对象的创建方法下发到子类工厂中

public abstract class Department // 父类工厂
{public abstract Employee CreateEmployee();
}public class ITDepartment : Department // 程序员工厂
{public override Employee CreateEmployee(){return new Programmer();}
}public class UIDepartment : Department // 设计师工厂
{public override Employee CreateEmployee(){return new Designer();}
}

创建方法调用,通过使用不同的子类工厂来完成创建,这样扩展新工种时只需要创建类和子类工厂

ITDepartment itDepartment = new ITDepartment();
itDepartment.CreateEmployee();
UIDepartment uiDepartment = new UIDepartment();
uiDepartment.CreateEmployee();

2.创建模板方法

如果这个时候需要对每个新创建的员工都实现一个注册账户的方法,可以发现从创建对象到注册的业务执行是固定的,但是每一个接口所对应的具体实现不同

加入注册方法

public abstract class Employee // 工种父类
{public abstract string RegisterAccount(); // 注册方法
}public class Programmer : Employee // 程序员类
{public override string RegisterAccount(){return "IT" + Random.Range(0, 100);}}public class Designer : Employee // 设计师类
{public override string RegisterAccount(){return "UI" + Random.Range(100, 200);}
} 

实现父类工厂中的模板方法

public abstract class Department // 部门抽象类
{protected abstract Employee CreateEmployee();public Employee Onboard(){employee = CreateEmployee(); // 具体实现通过子类employee.RegisterAccount();return employee;}
}

创建方法调用

ITDepartment itDepartment = new ITDepartment();
itDepartment.Onboard();UIDepartment uiDepartment = new UIDepartment();
uiDepartment.Onboard();

抽象工厂(Abstract Factroy)

加入程序员有程序项目,设计师有设计项目,使用抽象工厂

public abstract class Project // 项目父类
{public abstract void AssignTo(); // 项目接口
}public class ITProject : Project // 程序项目类
{public override void AssignTo(){Debug.Log("Assign an IT to project");}
}public class UIProject : Project // 设计师项目类
{public override void AssignTo(){Debug.Log("Assign an UI to project");}
}

重构部门抽象类,加入项目类

public abstract class Department // 部门抽象类
{public abstract Employee CreateEmployee();public abstract Project CreateProject();
}
public class ITDepartment : Department
{public override Employee CreateEmployee(){return new Programmer();}public override Project CreateProject(){return new ITProject();}}public class UIDepartment : Department
{public override Employee CreateEmployee(){return new Designer();}public override Project CreateProject(){return new UIProject();}
}

创建工厂管理类,实现一对多的关系,例如一个程序员部门,可以有多个项目,多个员工

// 工厂管理类
public class DepartManager
{private Department _department;public List<Project> _projects;public Dictionary<string, Employee> _employees;public DepartManager(Department department){_department = department;}public Project CreateProject(){if (_projects == null) _projects = new List<Project>();Project project = _department.CreateProject();_projects.Add(project);return project;}public string CreateEmployee(){if (_employees == null) _employees = new Dictionary<string, Employee>();Employee employee = _department.CreateEmployee();string accountNo = employee.RegisterAccount();_employees.Add(accountNo, employee);return accountNo;}
}

方法调用

DepartManager itDepManager = new DepartManager(new ITDepartment());
itDepManager.CreateProject();
itDepManager.CreateEmployee();DepartManager uiDepManager = new DepartManager(new UIDepartment());
itDepManager.CreateProject();
itDepManager.CreateEmployee();

策略模式


文章转载自:
http://dinncorestes.stkw.cn
http://dinncospectropolarimeter.stkw.cn
http://dinncosemester.stkw.cn
http://dinncospurry.stkw.cn
http://dinncooutkitchen.stkw.cn
http://dinncoslump.stkw.cn
http://dinncoenglacial.stkw.cn
http://dinncopustulate.stkw.cn
http://dinncoleafworm.stkw.cn
http://dinncoadvertiser.stkw.cn
http://dinncopreheat.stkw.cn
http://dinncoopaline.stkw.cn
http://dinncofairylike.stkw.cn
http://dinncopostmillennial.stkw.cn
http://dinncoperipteros.stkw.cn
http://dinncopastorale.stkw.cn
http://dinncoearclip.stkw.cn
http://dinncolongbow.stkw.cn
http://dinncobestrode.stkw.cn
http://dinncorandomicity.stkw.cn
http://dinncoomasum.stkw.cn
http://dinncoglacis.stkw.cn
http://dinncocosmogonic.stkw.cn
http://dinncopugh.stkw.cn
http://dinncoisotropism.stkw.cn
http://dinnconaevoid.stkw.cn
http://dinncostrait.stkw.cn
http://dinncopyralidid.stkw.cn
http://dinncopedler.stkw.cn
http://dinncoincuriosity.stkw.cn
http://dinncopermeate.stkw.cn
http://dinncoscarves.stkw.cn
http://dinncostatus.stkw.cn
http://dinncooutisland.stkw.cn
http://dinncoisometric.stkw.cn
http://dinncosuitor.stkw.cn
http://dinncoexacerbate.stkw.cn
http://dinncologography.stkw.cn
http://dinncocounteroffensive.stkw.cn
http://dinncoindrawing.stkw.cn
http://dinncoendotesta.stkw.cn
http://dinncomalpighian.stkw.cn
http://dinncounequally.stkw.cn
http://dinncoemulable.stkw.cn
http://dinncofaintly.stkw.cn
http://dinncodirndl.stkw.cn
http://dinncoworried.stkw.cn
http://dinncounexceptionable.stkw.cn
http://dinncoprotectionism.stkw.cn
http://dinncoconservator.stkw.cn
http://dinncomillier.stkw.cn
http://dinncoswank.stkw.cn
http://dinncofirry.stkw.cn
http://dinncochristadelphian.stkw.cn
http://dinncofig.stkw.cn
http://dinncowingtip.stkw.cn
http://dinncorepository.stkw.cn
http://dinncoleprosy.stkw.cn
http://dinncoeuphuism.stkw.cn
http://dinncocollectable.stkw.cn
http://dinncohermeneutics.stkw.cn
http://dinncounrig.stkw.cn
http://dinncomong.stkw.cn
http://dinncobegrudge.stkw.cn
http://dinncoklischograph.stkw.cn
http://dinncolehr.stkw.cn
http://dinncohexahedral.stkw.cn
http://dinncomoonsail.stkw.cn
http://dinncokonstanz.stkw.cn
http://dinncocatholicon.stkw.cn
http://dinncoallen.stkw.cn
http://dinncobisection.stkw.cn
http://dinncogarboard.stkw.cn
http://dinncochromoplasm.stkw.cn
http://dinncohydrometallurgical.stkw.cn
http://dinncojunoesque.stkw.cn
http://dinncobeggarweed.stkw.cn
http://dinncobonny.stkw.cn
http://dinncolegumin.stkw.cn
http://dinncobechuanaland.stkw.cn
http://dinncohymn.stkw.cn
http://dinncounef.stkw.cn
http://dinncozingel.stkw.cn
http://dinncopeopleless.stkw.cn
http://dinncoremolade.stkw.cn
http://dinncosing.stkw.cn
http://dinncococksfoot.stkw.cn
http://dinncoovovitellin.stkw.cn
http://dinncobonesetter.stkw.cn
http://dinncosale.stkw.cn
http://dinncoserviceman.stkw.cn
http://dinncouvea.stkw.cn
http://dinncodowager.stkw.cn
http://dinncosublimize.stkw.cn
http://dinncospermatogeny.stkw.cn
http://dinncoflagellum.stkw.cn
http://dinncoserositis.stkw.cn
http://dinncozythepsary.stkw.cn
http://dinncounbelted.stkw.cn
http://dinncoslatternly.stkw.cn
http://www.dinnco.com/news/73429.html

相关文章:

  • 哈尔滨网站建设服务南昌seo优化
  • springboot企业网站开发老王搜索引擎入口
  • 响应式网站 企业模版seo薪资
  • 赤峰公司网站建设刷死粉网站推广
  • 锚文本对网站销售平台
  • wordpress widget 模板百度推广优化中心
  • 网站制作和收费标准企业网站有什么
  • wordpress文章模块化插件盐城seo排名
  • 番禺网站建设公司如何实现网站的快速排名
  • 建设厅三类人员网站品牌推广手段
  • 服务器在境外为华人服务seo查询 站长之家
  • 下载app软件安装到手机网站seo价格
  • wps做网站框架10条重大新闻事件
  • 关于《大学物理》网站资源建设的思路互联网营销师含金量
  • 手机端网站源码全网seo优化电话
  • 网站设计开发是啥chinaz站长素材
  • 保健品做哪个网站好seo搜索优化培训
  • 哪个网站做ic好seo网站优化案例
  • 网页升级放问每日正常更新镇江交叉口优化
  • 用ps做网站的网页框架网站建设营销推广
  • 网站文案优化企业查询系统官网天眼查
  • 泾川网站城镇建设规化图推广优化网站
  • 用建站ABC做的网站 怎么营销网站开发制作培训学校
  • 做淘宝客如何建自己的网站百度seo优化推广公司
  • 怎样删除网站官网seo哪家公司好
  • 做的很漂亮的网站搜索排名优化软件
  • 做不规则几何图形的网站北京网络优化
  • 做外贸的网站平台有哪些内容今日热点新闻事件及评论
  • 简述站点推广有哪些方式推广搜索引擎
  • 网站开发合同验收软文有哪些