Fantasmas de negócios ensinam padrões de métodos de modelos

Insira a descrição da imagem aqui

Enredo

Após a inauguração, a forte publicidade de Guangjun e a localização privilegiada da escola tornaram os negócios de Guangjun extremamente quentes, e suas mãos quase nunca pararam.

Mas, ele está ocupado e bagunçado. Às vezes, ele se esquece de adicionar alface ao hambúrguer, às vezes se esquece de adicionar pérolas ao chá com leite e às vezes ele escova a salsicha duas vezes com molho doce e picante ... e
assim por diante. Guangjun estava muito preocupado.

Por que não encontrar um ajudante? Em primeiro lugar, não é fácil encontrar uma pessoa qualificada em um curto espaço de tempo. Além disso, se você for uma pechincha de abertura, não ganhará muito. O principal motivo é construir uma reputação, para que você não dê errado! ! !

Como fazer? Guangjun é um pouco difícil. Nessa hora, o bom amigo dele, que sou eu, soube que ele tinha comprado outra loja, então quis vir animá-lo, só porque o Guangjun me colocou duas carnes. Mas pensei: caramba, ele é mesmo um bom irmão! !
Como resultado, quando estava descansando ao meio-dia, ele disse que não tinha conhecimento desse incidente e me contou a respeito.

Eu apenas mencionei isso casualmente: basta se divertir com toda a linha de montagem e fazer um conjunto.

O falante não tem intenção, o ouvinte tem a intenção. Quem sabe se ele realmente montou um set, tut tut, ainda não dá muito lucro, é caro.

Como é essa linha de montagem?
Insira a descrição da imagem aqui

Provavelmente assim:
a linha de montagem para fazer hambúrgueres: churrasco, torradas, alface, manteiga, pão e carne.
Se você quiser fazer um hambúrguer de coxa de frango coloque carne de coxa de frango; se quiser fazer um hambúrguer de carne, coloque carne de vaca ...

A linha de produção do chá com leite: tomar xícaras (grandes, médias e pequenas), colocar o chá, adicionar leite, alimentar 1, alimentar 2, alimentar 3.
Se não houver materiais suficientes, o processo ainda precisa ser executado. Existem apenas três limites superiores para materiais e o modelo deve ser alterado.

A linha de montagem de linguiças grelhadas não será escrita e será enfadonho escrever novamente.

Desta forma, Guangjun começou um trabalho ocupado e organizado. Os fatos provam que essa mudança terá um papel fundamental no desenvolvimento futuro de sua loja.

Padrão de método de modelo

Agora vamos dar uma olhada no padrão de design, padrão de método de modelo que queremos aprender nesta pequena história.

Então, qual é o padrão de método de template?
Defina a estrutura de um algoritmo em operação e atrase algumas etapas para a subclasse, de modo que a subclasse possa redefinir algumas etapas específicas do algoritmo sem alterar a estrutura de um algoritmo.
Insira a descrição da imagem aqui

Pode não ser muito claro dizer que,

封装不变部分,拓展可变部分(把认为是不变部分的算法封装到父类实现,而可变部分可以通过继承来继续拓展。如果要在来个新产品,虾堡,知道怎么做吧)
提取公共部分代码,便于维护。想想看,那个run要是放到子类,那要修改会有几倍工作量?
行为由父类控制,子类实现。

Colocá-lo nas castanhas é decidir quando e o que fazer com antecedência, por exemplo, assar primeiro a carne, depois assar o pão, quanto a que carne assar, que pão assar, se é coxas de frango, pão de aveia, carne, pão fatiado, então É determinado exclusivamente pelo operador específico (Guangjun).

Desta forma, tudo é tão ordenado! ! !

Vamos simplesmente chegar ao processo de realização do fluxo de Hamburgo:

Exibição do diagrama de classes

Insira a descrição da imagem aqui

Exemplo de demonstração de código:

#include<iostream>

using namespace std;

class abstracthumber {
    
    
public:
	virtual void bread() = 0;
	virtual void barbecue() = 0;
	virtual void cream() = 0;
	virtual void lettuce() = 0;

	void run()	//将共同的核心算法流程提炼到抽象类
	{
    
    
		this->bread();
		this->barbecue();
		this->cream();
		this->lettuce();
	}
};

//将细节延迟到子类
//这两步便是模板方法模式的精髓
class chicken :public abstracthumber {
    
    
public:
	void bread() {
    
     cout << "鸡腿堡的面包" << endl; }
	void barbecue() {
    
     cout << "鸡腿堡的鸡腿" << endl; }
	void cream() {
    
     cout << "鸡腿堡的奶油" << endl; }
	void lettuce() {
    
     cout << "鸡腿堡的生菜" << endl; }
};

class beef :public abstracthumber {
    
    
public:
	void bread() {
    
     cout << "牛肉堡的面包" << endl; }
	void barbecue() {
    
     cout << "牛肉堡的鸡腿" << endl; }
	void cream() {
    
     cout << "牛肉堡的奶油" << endl; }
	void lettuce() {
    
     cout << "牛肉堡的生菜" << endl; }
};


int main()
{
    
    
	abstracthumber* a = new chicken();
	abstracthumber* b = new beef();

	a->run();
	b->run();
}

meus pensamentos:

Este método é bom, separando o algoritmo do núcleo e os detalhes, mas o problema de expansão ainda existirá.
Haverá bom desempenho no trabalho em equipe e nos aplicativos de herança de código.


Venha aqui hoje, a história do empreendedorismo em Guangjun ainda está sendo escrita, todos podem me seguir

Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/qq_43762191/article/details/108685521
Recomendado
Clasificación